Linux如何实现数据库远程访问_LinuxMySQL权限配置

答案是配置MySQL用户权限、修改绑定地址为0.0.0.0、开放防火墙3306端口。具体需创建允许远程连接的用户,编辑mysqld.cnf配置文件,重启服务并设置ufw防火墙规则,最后通过mysql -h IP -u用户-p连接,生产环境应限制IP以确保安全。

Linux如何实现数据库远程访问_LinuxMySQL权限配置

要实现Linux下MySQL数据库的远程访问,关键在于正确配置MySQL用户权限和服务器网络设置。默认情况下,MySQL只允许本地连接,需手动调整才能让外部主机访问。

开启MySQL远程访问权限

MySQL通过用户账户的主机名限制登录来源。要允许远程连接,需创建或修改用户,使其可以从非本地IP连接。

操作步骤:

  • 登录MySQL:使用root账户进入数据库
    mysql -u root -p
  • 授权远程用户:
    允许特定用户从任意主机连接(不推荐生产环境)
    GRANT ALL PRIVILEGES ON *.* TO ‘username’@’%’ IDENTIFIED BY ‘password‘;
    或仅允许来自某个IP的连接(更安全)
    GRANT ALL PRIVILEGES ON *.* TO ‘username’@’192.168.1.100’ IDENTIFIED BY ‘password’;
  • 刷新权限:
    FLUSH PRIVILEGES;

修改MySQL绑定地址

MySQL默认监听127.0.0.1,需更改配置文件以监听公网或所有接口

编辑配置文件:

Linux如何实现数据库远程访问_LinuxMySQL权限配置

AIBox 一站式AI创作平台

AIBox365一站式AI创作平台,支持ChatGPT、GPT4、Claue3、Gemini、Midjourney等国内外大模型

Linux如何实现数据库远程访问_LinuxMySQL权限配置 217

查看详情 Linux如何实现数据库远程访问_LinuxMySQL权限配置

  • 打开MySQL配置文件(路径可能为 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf)
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • 找到 bind-address 行,将其改为:
    bind-address = 0.0.0.0
    这表示监听所有网络接口。
  • 保存并重启MySQL服务:
    sudo systemctl restart mysql

配置防火墙允许3306端口

即使MySQL允许远程连接,系统防火墙也可能阻止外部访问。

使用ufw开放端口:

  • 允许MySQL默认端口:
    sudo ufw allow 3306
  • 更安全的做法是仅允许特定IP:
    sudo ufw allow from 192.168.1.100 to any port 3306
  • 查看规则是否生效:
    sudo ufw status

完成上述配置后,即可从远程主机使用客户端连接MySQL:
mysql -h your_server_ip -u username -p

基本上就这些。只要权限、配置文件和防火墙都设置正确,远程访问就能正常工作。注意生产环境应避免使用 % 通配符开放所有IP,尽量限定具体来源IP,保障数据安全。