在MySQL 8.0版本中开启远程登录功能是一个相对简单的过程,主要包括几个关键步骤:登录MySQL服务器、修改用户身份验证方式、授权远程访问以及配置防火墙规则。以下是详细的操作步骤:

1. 登录MySQL服务器本地

首先,你需要以具有足够权限的用户(通常为root用户)登录MySQL服务器本地。在终端中执行如下命令:

mysql -u root -p

当提示输入密码时,输入你的MySQL root用户密码,然后回车,你将进入MySQL的交互式命令行界面。

2. 修改用户身份验证插件

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用户的远程访问密码。

3. 授权远程访问

接下来,你需要赋予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地址。

4. 刷新权限

为了让以上权限更改生效,执行以下SQL命令:

FLUSH PRIVILEGES;

5. 配置防火墙规则

确保服务器上的防火墙允许MySQL服务端口(默认为3306)的入站流量:

对于使用ufw防火墙的Ubuntu等系统:

sudo ufw allow 3306/tcp

对于使用firewalld防火墙的CentOS/RHEL系统:

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

6. 考虑SELinux设置(仅限SELinux启用)

如果你的系统启用了SELinux,可能还需要调整SELinux策略以允许MySQL接受远程连接。具体操作取决于系统的具体配置和SELinux策略。

注意:

  • 上述命令中的用户名、密码和IP地址应替换为实际值。
  • 在生产环境中,不推荐直接使用root账户进行远程访问,而是建议创建专门的远程访问用户并给予适当权限。
  • 根据具体的安全策略和合规要求,务必遵循最小权限原则,仅向远程访问用户授予完成任务所需的最低权限。
Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐