需求描述:刚刚在linux服务器上安装完mysql(Linux服务器安装mysql),希望mysql可以被远程访问,用Navicat 远程登录服务器上的mysql软件。需要对mysql进行如下配置:
使mysql允许远程访问一般有两步:
(1)阿里云服务器需要修改安全组规则,添加3306端口到安全组中,允许0.0.0.0/0即所有地址都可以访问该端口(也可以修改为特定的地址可以访问)
(2)修改“/etc/mysql/my.cnf文件”使3306端口可以被所有的ip访问
使用netstat -ntlp 命令检查端口的监听状况(或则直接使用netstat -an | grep 3306),如果如下图所示说明3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。
解决方法:修改/etc/mysql/my.cnf文件(但是不同的环境下mysqld.cnf文件的位置可能不一样)
1.使用下面命令编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
2.注释掉这一行“bind-address = 127.0.0.1”。(或者修改为“bind-address = 0.0.0.0”或者设备地址)
(linux终端如何编辑文件参考:Linux如何用vim编写、运行c脚本)
再查看端口的监听状况就会变为如下:
(3)使用授权法使外部ip可以访问mysql。
1.进入mysql
//1.进入mysql
mysql -uroot -p你的密码
//2.执行授权命令:(使所有ip都可以访问,其中yourpassword需要填入你的mysql密码)
grant all on *.* to root@'%' identified by 'yourpassword' with grant option;
//3.退出mysql
exit
授权命令:GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想只允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
可以使用:GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION
2.重启mysql
service mysql restart
注:之后可以使用Navicat软件远程连接测试连接是否成功,windows电脑远程连接Ubuntu服务器中的mysql的方法:可以在本地主机安装navicat软件,使用这个软件远程连接服务器上的mysql,在本地主机使用图形化界面来操作这个mysql数据库。(下图是“使用navicat软件远程连接到mysql”的效果图)