在MySQL 8.0版本中开启远程登录功能是一个相对简单的过程,主要包括几个关键步骤:登录MySQL服务器、修改用户身份验证方式、授权远程访问以及配置防火墙规则。以下是详细的操作步骤:
首先,你需要以具有足够权限的用户(通常为root用户)登录MySQL服务器本地。在终端中执行如下命令:
mysql -u root -p
当提示输入密码时,输入你的MySQL root用户密码,然后回车,你将进入MySQL的交互式命令行界面。
MySQL 8.0默认使用caching_sha2_password身份验证插件,为了兼容更多旧版客户端,你可以将root用户的认证方式更改为mysql_native_password插件:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';
请将 'your_strong_password' 替换为你要设置的root用户的远程访问密码。
接下来,你需要赋予root用户远程访问权限。若允许任意IP地址访问,执行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
如果你想只为特定IP地址授权远程访问,可以这样操作:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_remote_ip' WITH GRANT OPTION;
将 'your_remote_ip' 替换为你希望允许远程连接的特定IP地址。
为了让以上权限更改生效,执行以下SQL命令:
FLUSH PRIVILEGES;
确保服务器上的防火墙允许MySQL服务端口(默认为3306)的入站流量:
对于使用ufw防火墙的Ubuntu等系统:
sudo ufw allow 3306/tcp
对于使用firewalld防火墙的CentOS/RHEL系统:
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
如果你的系统启用了SELinux,可能还需要调整SELinux策略以允许MySQL接受远程连接。具体操作取决于系统的具体配置和SELinux策略。
注意: