新闻资讯

MySQL 开启远程访问权限怎么设置

2025-03-6

MySQL 开启远程访问权限主要涉及修改 MySQL 配置文件和授权远程访问用户两方面操作,不同操作系统下具体路径和操作略有差异,但总体思路一致。

Linux 系统下设置

1、 检查 MySQL 服务状态:以 root 用户登录系统,打开终端,执行命令 systemctl status mysqld(CentOS 系统)或 systemctl status mysql(Ubuntu 系统),确保 MySQL 服务正在运行。若未运行,执行 systemctl start mysqld(CentOS)或 systemctl start mysql(Ubuntu)启动服务。
2、 修改 MySQL 配置文件:不同 Linux 发行版中,MySQL 配置文件路径不同。在 CentOS 中,配置文件通常为 /etc/my.cnf;在 Ubuntu 中,一般是 /etc/mysql/mysql.conf.d/mysqld.cnf。使用文本编辑器(如 vim)打开配置文件,找到 bind - address = 127.0.0.1 这一行,该行限制 MySQL 仅监听本地回环地址,从而禁止远程访问。在该行前面添加注释符号 #,将其注释掉,即 #bind - address = 127.0.0.1。保存并关闭文件。之后执行 systemctl restart mysqld(CentOS)或 systemctl restart mysql(Ubuntu)重启 MySQL 服务使配置生效。
3、 授权远程访问用户:执行 mysql - u root - p 命令,输入 root 用户密码登录 MySQL 数据库。假设要允许来自 192.168.1.0/24 网段的用户 testuser 以密码 testpass 远程访问,并对所有数据库和表具有所有权限,执行以下 SQL 语句:
CREATE USER 'testuser'@'192.168.1.%' IDENTIFIED BY 'testpass';
GRANT ALL PRIVILEGES ON . TO 'testuser'@'192.168.1.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER 语句创建新用户并指定可远程连接的网段及密码。GRANT 语句授予该用户对所有数据库和表的所有权限,并允许其将权限授予其他用户。FLUSH PRIVILEGES 使权限设置立即生效。
4、 配置防火墙(可选):若 Linux 系统启用了防火墙(如 firewalld 在 CentOS 上,ufw 在 Ubuntu 上),需要允许 MySQL 的端口(默认为 3306)通过防火墙。在 CentOS 上,执行 firewall - cmd --zone = public --add - port = 3306/tcp --permanent 开放 3306 端口,并使用 firewall - cmd --reload 重新加载防火墙配置使设置生效。在 Ubuntu 上,执行 ufw allow 3306/tcp 开放端口。

Windows 系统下设置

1、 找到 MySQL 配置文件:MySQL 在 Windows 系统中的配置文件通常是 my.ini,一般位于 MySQL 安装目录下。使用文本编辑器打开该文件。
2、 修改绑定地址:在 my.ini 文件中找到 bind - address 配置项。如果该项存在且值为 127.0.0.1,将其注释掉或修改为服务器的实际 IP 地址(若服务器有多块网卡,可设置为 0.0.0.0 监听所有地址)。例如:
#bind - address = 127.0.0.1

bind - address = 192.168.1.100
保存文件后,通过 “服务” 窗口或在命令提示符中执行 net stop mysql 和 net start mysql 重启 MySQL 服务。
3、 授权远程访问用户:打开命令提示符,执行 mysql - u root - p 登录 MySQL 数据库,同样使用上述 SQL 语句授权远程访问用户。
4、 配置防火墙:在 Windows 系统中,打开 “控制面板” - “系统和安全” - “Windows Defender 防火墙”,在 “高级设置” 中创建入站规则,允许 MySQL 端口(默认为 3306)通过防火墙。
完成以上设置后,MySQL 即可开启远程访问权限,远程客户端可使用授权的用户名、密码及服务器 IP 地址连接到 MySQL 数据库。


拓展阅读:

1、 MySQL 用户权限管理进阶:除了授予所有权限,MySQL 还支持非常细致的权限管理。可以针对不同用户授予特定数据库、特定表甚至特定列的不同权限,如 SELECT、INSERT、UPDATE、DELETE 等,以增强数据库安全性。
2、 使用 SSL 加密远程连接:为保障远程连接的安全性,可启用 MySQL 的 SSL 加密功能。在 MySQL 配置文件中配置 SSL 相关参数,并为客户端提供 SSL 证书。这样在远程连接时,数据传输将被加密,防止数据被窃取或篡改。
3、 排查远程连接故障:若远程连接 MySQL 失败,首先检查网络连接是否正常,可使用 ping 命令测试服务器 IP 可达性。然后检查 MySQL 日志文件(如 /var/log/mysqld.log 或 C:\ProgramData\MySQL\MySQL Server 8.0\Data\主机名.err),查看是否有连接相关的错误信息,如权限不足、端口未监听等,根据错误提示进行排查。

新闻资讯
热门专题
最新专题
友情链接