服务器测评网
我们一直在努力

Linux MySQL如何开启远程登录权限?

Linux 系统下 MySQL 远程登录配置指南

在 Linux 系统中,MySQL 数据库的远程登录功能允许从其他计算机访问数据库,便于分布式管理和远程维护,由于安全风险较高,需谨慎配置,本文将详细介绍 MySQL 远程登录的步骤、安全优化及常见问题解决方法。

Linux MySQL如何开启远程登录权限?

准备工作

在配置远程登录前,需确保以下条件满足:

  1. MySQL 服务运行正常:通过 systemctl status mysql 检查服务状态,若未启动,执行 systemctl start mysql
  2. 具备管理员权限:需使用 root 或拥有 GRANT OPTION 权限的用户进行操作。
  3. 网络连通性:确保 Linux 服务器的防火墙允许 MySQL 默认端口(3306)的访问。

配置 MySQL 允许远程登录

默认情况下,MySQL 仅允许本地连接,需修改用户权限以支持远程访问:

登录 MySQL 控制台

mysql -u root -p  

输入密码后进入 MySQL 命令行界面。

Linux MySQL如何开启远程登录权限?

创建或修改远程用户

以创建新用户 remote_user 为例,设置密码并授权:

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!';  
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;  
FLUSH PRIVILEGES;  
  • 表示允许任何 IP 地址连接,可替换为特定 IP(如 '192.168.1.100')增强安全性。
  • WITH GRANT OPTION 允许用户授权其他用户。

验证用户权限

SELECT host, user FROM mysql.user WHERE user = 'remote_user';  

配置防火墙与安全组

Linux 防火墙需开放 3306 端口,以 ufw(Ubuntu)和 firewalld(CentOS)为例:

Ubuntu(使用 ufw)

sudo ufw allow 3306/tcp  
sudo ufw reload  

CentOS(使用 firewalld)

sudo firewall-cmd --permanent --add-port=3306/tcp  
sudo firewall-cmd --reload  

云服务器安全组

若使用阿里云、腾讯云等平台,需在安全组规则中添加入方向规则,允许 3306 端口访问。

Linux MySQL如何开启远程登录权限?

安全优化建议

远程登录存在安全隐患,建议采取以下措施:

安全措施 说明
限制 IP 访问 创建用户时指定 IP(如 '192.168.1.%'),避免使用 通配符。
禁用 root 远程登录 删除 root 的远程权限:DELETE FROM mysql.user WHERE user = 'root' AND host != 'localhost';
使用 SSL 加密 配置 MySQL SSL 证书,确保数据传输加密(需生成 CA 证书和服务器证书)。
修改默认端口 /etc/mysql/mysql.conf.d/mysqld.cnf 中修改 port = 3306 为其他端口。
定期更新密码 使用 ALTER USER 'remote_user'@'%' IDENTIFIED BY 'NewPassword'; 更新密码。

常见问题排查

连接超时或被拒绝

  • 检查防火墙:确认端口已开放,可通过 telnet <服务器IP> 3306 测试。
  • 检查 MySQL 配置:确保 /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 0.0.0.0(允许所有 IP)或指定服务器 IP。

用户无权限

  • 重新授权并刷新权限:GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'host'; FLUSH PRIVILEGES;

密码错误

  • 重置密码:ALTER USER 'user'@'host' IDENTIFIED BY 'new_password';

MySQL 远程登录需平衡功能需求与安全风险,通过合理配置用户权限、防火墙规则及安全策略,可有效提升远程访问的安全性,建议定期审计日志,及时发现异常访问行为,完成配置后,即可使用 MySQL 客户端(如 Navicat、MySQL Workbench)或命令行 mysql -h <服务器IP> -u remote_user -p 进行远程连接。

赞(0)
未经允许不得转载:好主机测评网 » Linux MySQL如何开启远程登录权限?