MySQL怎么开启远程连接_MySQL允许远程访问设置教程

15次阅读

开启 MySQL 远程连接需五步:一、修改用户 host 为 % 并刷新权限;二、将 bind-address 设为 0.0.0.0;三、重启 MySQL 服务;四、防火墙放行 3306 端口;五、推荐创建专用远程用户并授权。

MySQL 怎么开启远程连接_MySQL 允许远程访问设置教程

如果您尝试从其他主机连接 MySQL 服务器,但连接被拒绝,则可能是由于 MySQL 默认仅允许本地连接。以下是开启 MySQL 远程连接的步骤:

一、修改 MySQL 用户权限

MySQL 通过用户账户的 host 字段控制允许连接的来源地址,将对应用户的 host 值从 localhost 改为 % 可使其接受任意 IP 的连接请求。

1、使用 root 账户登录 MySQL 命令行:mysql -u root -p

2、切换到 mysql 系统数据库:USE mysql;

3、查询当前 root 用户的 host 设置:SELECT host, user FROM user WHERE user=’root’;

4、更新 root 用户的 host 为 %(允许所有 IP):UPDATE user SET host=’%’ WHERE user=’root’ AND host=’localhost’;

5、刷新权限表使更改生效:FLUSH PRIVILEGES;

二、检查并修改 MySQL 绑定地址

MySQL配置文件 中的 bind-address 参数限制了服务监听的网络接口,默认值 127.0.0.1 仅响应本地请求,需将其更改为 0.0.0.0 或具体服务器 IP 以启用外部访问。

1、定位 MySQL 配置文件,常见路径为/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu/Debian)或/etc/my.cnf(CentOS/RHEL)

2、用文本编辑器打开该文件:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

3、查找包含 bind-address 的行

4、将其值修改为:bind-address = 0.0.0.0

5、保存并退出编辑器

三、重启 MySQL 服务

配置更改后必须重启 MySQL 服务,使新绑定地址和权限设置生效。

1、在 Ubuntu/Debian 系统上执行:sudo systemctl restart mysql

2、在 CentOS/RHEL 系统上执行:sudo systemctl restart mysqld

3、验证服务状态是否为 active:sudo systemctl status mysql(或 mysqld)

四、配置 防火墙 放行 3306端口

操作系统 防火墙可能拦截来自外部的 TCP 3306 端口连接请求,需显式添加规则允许该端口通信。

1、在使用 UFW 的系统上运行:sudo ufw allow 3306

2、在使用 firewalld 的系统上运行:sudo firewall-cmd –permanent –add-port=3306/tcp

3、重载 firewalld 配置:sudo firewall-cmd –reload

4、确认端口已开放:sudo ufw status verbose 或 sudo firewall-cmd –list-ports

五、创建专用远程访问用户(推荐)

直接开放 root 远程访问存在安全风险,建议新建具有最小必要权限的专用用户,并限定其可访问的数据库与来源 IP。

1、登录 MySQL 后执行:CREATE USER ‘remote_user’@’%’ IDENTIFIED BY ‘StrongPass123!’;

2、授予该用户对指定数据库的全部权限:GRANT ALL PRIVILEGES ON mydb.* TO ‘remote_user’@’%’;

3、刷新权限:FLUSH PRIVILEGES;

4、如需限制仅特定 IP 访问,将 % 替换为具体 IP,例如:‘remote_user’@’192.168.1.100’

text=ZqhQzanResources