外网访问虚拟机MYSQL

时间:2022-12-24 13:33:22
第一步是要创建一个可以远程连接的 MySQL 用户
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'%'  IDENTIFIED BY 'userPWD'  WITH GRANT OPTION;
mysql> flush privileges;
### "%"表示任意IP,如果要为特定的user指定从特定的IP访问,方法如下:
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'ip'  IDENTIFIED BY 'userPWD'  WITH GRANT OPTION;
mysql> flush privileges;

第二步是要修改 mysql 的配置文件 /etc/mysql/my.cnf

在旧版本中找到 skip-networking,把它注释掉就可以了
#skip-networking

在新版本中:
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1

bind-address           = 127.0.0.1 这一行要注释掉
#bind-address           = 127.0.0.1

或者把允许访问的ip 填上
bind-address       = 192.168.1.100

然后重启 MySQL 
/etc/init.d/mysql restart

以上方法只完成了外网访问的配置,它只允许从主机*问MYSQL,如果要完全从外网访问则需要将主机的3306端口映射到虚拟机的3306上(当然其它的端口也是可以的)