最近在项目中需要连接到远程数据库来实现数据的增删改查,原以为改改参数、开启数据库服务就顺顺利利了,没想到会遇见这么多坑。。。特来记录。也希望能帮助到跟我一样遇见这种错误的程序猿顺利解决!
步骤一:在远程主机上开放防火墙端口
修改完参数(ip,port,user,password)后在你的本地主机、远程主机都需要开放mysql服务端口3306(你也可以自己修改配置文件改变mysql默认端口),例如我的两个主机都是ubuntu系统,进行以下操作:
sudo ufw allow 3306
或者直接关闭防火墙
sudo ufw disable
步骤二:修改mysql配置文件让其他主机可以访问mysql服务
例如:[mysqld]
character-set-server = utf8
bind-address = 0.0.0.0
port = 3306
配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf
重启mysql服务:service mysql restart
查看处于监听的服务状态:sudo netstat -aptn
可以看到从上至下第四个服务 0.0.0.0:3306 mysqld已开启 处于 LISTEN状态
注意:这步在远程主机上操作!
步骤三:修改用户(user/root)的host访问权限
查看:use mysql;(选择mysql库)
select user,host from user;
[user][host]
[root][localhost]
修改host 为 "%"
update user set host="%" where user="root"; 这就不贴图了,见谅
步骤四:本地连接远程mysql数据库
mysql -hip地址 -u用户(root) -P端口(3306) -p
Enter Password:输入密码即可
最重要的来了,如果你要连接的远程主机是阿里云服务器还需要配置安全组规则!!!
开放入口,端口为3306/3306 优先级1 远程访问地址:0.0.0.0/0 点击保存