如何开启mysql远程访问_mysql授权配置步骤

来源:这里教程网 时间:2026-02-28 20:36:55 作者:

要让 MySQL 支持远程访问,核心是两步:修改绑定地址允许外部连接,再给指定用户授予远程登录权限。缺一不可,否则即使账号有权限也连不上,或能连上但被拒绝访问数据库。

1. 修改 MySQL 配置文件,放开监听地址

MySQL 默认只监听本地(127.0.0.1),需改为监听所有 IP 或指定网卡。

找到配置文件:Linux 通常是
/etc/mysql/mysql.conf.d/mysqld.cnf
/etc/my.cnf
Windows
my.ini
(在 MySQL 安装目录下)
查找
bind-address
这一行,将其改为:
bind-address = 0.0.0.0
(监听所有 IPv4 地址)
或指定服务器内网 IP,如
bind-address = 192.168.1.100
保存后重启 MySQL 服务:
sudo systemctl restart mysql
(Ubuntu/Debian)
sudo service mysqld restart
(CentOS/RHEL)

2. 登录 MySQL,创建或授权远程用户

必须用 root 或高权限账号登录本地 MySQL(

mysql -u root -p
),然后执行授权语句。

如果想复用现有用户(比如 root),直接授权(不推荐用于生产):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
更安全的做法:新建专用远程用户(例如用户名
remote_user
,密码
SecurePass123
):
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'SecurePass123';

GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'remote_user'@'%';
务必刷新权限:
FLUSH PRIVILEGES;

3. 检查防火墙是否放行 3306 端口

即使 MySQL 配置正确,防火墙也可能拦截连接请求。

Ubuntu/Debian(UFW):
sudo ufw allow 3306
CentOS 7+/RHEL(firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp

sudo firewall-cmd --reload
云服务器(如阿里云、腾讯云):还需在安全组中手动放行 TCP 3306 端口

4. 测试远程连接

从另一台机器用客户端测试,确认是否生效:

命令行连接(需安装 MySQL 客户端):
mysql -h 服务器公网IP -u remote_user -p
图形工具(如 MySQL Workbench、DBeaver):填入 IP、用户名、密码和端口(默认 3306) 常见报错提示参考:
ERROR 1130: Host 'x.x.x.x' is not allowed to connect
→ 用户授权未生效或 host 不匹配
Can't connect to MySQL server
→ 网络不通、防火墙拦截、MySQL 未监听 0.0.0.0 或服务未启动

配置本身不复杂,但每一步都可能成为连接失败的原因。建议按顺序检查:配置文件 → 授权语句 → 防火墙 → 远程测试。安全起见,生产环境尽量避免开放 root 远程登录,且限制可连接的 IP 范围(把

@'%'
换成
@'192.168.1.%'
或具体 IP)。

相关推荐