您的位置:

如何从不允许外部连接设置为允许外部连接

一、确认my.cnf文件中的bind-address是否被注释

#bind-address=127.0.0.1

在my.cnf配置文件中,bind-address表示MySQL只接受来自本机的连接,并拒绝所有外部连接。因此,首先需要检查该选项是否被注释掉。如果被注释掉,则说明MySQL默认允许外部连接。

如果该选项未注释掉,则需要注释掉或者把127.0.0.1改为0.0.0.0,表示MySQL接受来自所有IP地址的连接。例如:

bind-address=0.0.0.0

二、确保MySQL的用户表中有root用户的远程访问权限

在MySQL的用户表中,每个用户都有主机和权限两种属性。如果想允许root用户从外部连接MySQL,则需要确保其主机属性为“%”(即所有主机),并且有至少一种权限。

1. 添加root用户

CREATE USER 'root'@'%' IDENTIFIED BY 'password';

这一步是确保用户表中存在root用户,如果已经存在,则可以跳过这一步。

2. 授权给root用户远程访问MySQL

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

这一步是确保root用户在所有主机上都能够访问MySQL。ALL PRIVILEGES表示赋予该用户所有权限, '*'表示所有数据库和表。如果只想授权某个数据库和表,则需要将'*.*'改为具体的数据库和表。

三、打开防火墙端口

如果MySQL所在的服务器有防火墙,则需要打开3306端口(MySQL默认端口)以允许外部连接。例如:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

四、重启MySQL服务

最后一步是重启MySQL服务以使更改生效。

systemctl restart mysqld

总结

通过以上步骤,我们可以把MySQL设置为允许外部连接,并且通过授权不同的用户不同的权限,保证MySQL的安全性。