Skip to content

MySQL 远程连接配置指南 🐬

简介

本指南将帮助你配置 MySQL 数据库的远程访问,包括用户创建、权限配置、网络设置等关键步骤。

  • 用户管理 👤
  • 网络配置 🌐
  • 安全设置 🛡️
  • 连接测试 🔌

配置步骤

1. 创建远程访问用户

注意

不建议使用 root 用户进行远程连接,应该创建专门的用户并限制其权限。

sql
-- 创建新用户(替换 your_username 和 your_password)
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';

-- 授予权限(根据需要调整权限范围)
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'your_username'@'%';
-- 或授予所有权限(谨慎使用)
-- GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%';

-- 刷新权限
FLUSH PRIVILEGES;
sql
-- 查看用户列表
SELECT user, host FROM mysql.user;

-- 查看用户权限
SHOW GRANTS FOR 'your_username'@'%';

2. 修改 MySQL 配置

配置文件位置

默认配置文件通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf

bash
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
ini
# 将绑定地址改为 0.0.0.0 允许远程连接
bind-address = 0.0.0.0

# 如果有 mysqlx 配置,也需要修改
mysqlx-bind-address = 0.0.0.0

3. 重启 MySQL 服务

bash
sudo systemctl restart mysql
bash
sudo service mysql restart

4. 配置防火墙

防火墙配置
bash
# 如果使用 UFW
sudo ufw allow 3306/tcp
sudo ufw status

# 查看是否开放成功
sudo ufw status verbose
bash
# 如果使用 iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# 保存规则
sudo netfilter-persistent save

安全建议

安全注意事项

  1. 用户权限控制

    • 仅授予必要的权限
    • 限制可访问的数据库
    • 定期审查用户权限
  2. 网络安全

    • 使用强密码
    • 限制允许连接的 IP
    • 配置 SSL/TLS 加密
  3. 监控和审计

    • 启用查询日志
    • 监控异常连接
    • 定期检查安全设置

最佳实践

  1. 创建用户时限制 IP:
sql
-- 限制特定 IP
CREATE USER 'user'@'192.168.1.100' IDENTIFIED BY 'password';

-- 限制 IP 段
CREATE USER 'user'@'192.168.1.%' IDENTIFIED BY 'password';
  1. 启用 SSL 连接:
sql
-- 要求用户使用 SSL 连接
ALTER USER 'user'@'%' REQUIRE SSL;
  1. 定期更新密码:
sql
-- 修改用户密码
ALTER USER 'user'@'%' IDENTIFIED BY 'new_password';

连接测试

命令行连接

bash
mysql -h 服务器IP -u your_username -p
bash
mysql -h 服务器IP -P 3306 -u your_username -p

常见问题

连接失败排查

  1. 网络连接

    bash
    # 测试网络连通性
    ping 服务器IP
    
    # 测试端口连通性
    telnet 服务器IP 3306
  2. 服务状态

    bash
    # 检查 MySQL 状态
    sudo systemctl status mysql
  3. 用户权限

    sql
    -- 检查用户权限
    SHOW GRANTS FOR 'your_username'@'%';
  4. 配置文件

    bash
    # 检查配置文件语法
    mysqld --verbose --help

相关工具

推荐工具

参考资源