为了安全考虑仅允许云主机本机(localhost)连接数据库,如果需要远程连接数据库,需要如下操作:
⚠️注意:云主机安全组端口(如阿里云控制台)、iptables(部分云主机没有启用iptables,可跳过)、grant授权用户,缺一不可

  1. 云主机安全组端口开放3306端口
    参考文档:《云主机安全组端口开放教程》
  2. 打开iptables 3306端口
    如果您的操作系统为CentOS系列:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save
iptables -nvL

如果您的操作系统为Ubuntu/Debian系列:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables.up.rules
iptables -nvL

  1. 数据库授权
    远程连接新建一个帐号(帐号名不能为root)。
    如:添加一个用户名为db_user,密码为db_pass,授权为% (%表示所有外围IP能连接)对db_name数据库所有权限,命令如下
    #mysql -uroot -p
    MySQL [(none)]> grant all privileges on db_name.* to db_user@’%’ identified by ‘db_pass’; #授权语句,特别注意有分号
    MySQL [(none)]> flush privileges;
    MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
    如下图: