navicat连接云服务器docker容器中的mysql
1.设置mysql访问权限mysql> use mysql;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select host,u
·
1.设置mysql访问权限
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
localhost有root权限,修改权限
update user set host = '%' where user ='root'; #修改权限
flush privileges;#刷新
2.检测云服务器是否开启了3306端口,这个端口是mysql对外的映射端口
阿里云服务器在工作区中,找到网络与安全,点击安全组,入方向添加mysql3306端口
3.navicat连接mysql
先用SSL先连接上服务器,主机填云服务器公网ip,密码填服务器密码,点击确认
主机或ip填云服务器ip,密码填mysql密码,点击确认。
注意:确保SSH的服务器ip正确和服务器登录密码正确,同时在常规页面下数据库密码正确,然后点击测试连接。不要在SSH页面填入ip和密码后就马上测试连接,会报1045 Access denied,因为这时你还没配置数据库密码,折腾了两小时,试了网上的方法,都不行,我真服了我这老六。
简单来说,就是先填SSH部分,再填常规部分,最后测试连接,连接成功就可以连接数据库了
如果出现1045错误,那就是还没有给远程登录权限
解决步骤:
- 在docker中登录进入mysql
docker exec -it mysql bash
mysql -uroot -p
#输入密码
#进入到mysql
use mysql;
select host, user, authentication_string, plugin from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
(设置远程登录密码123456,密码别设置的太简单,否则知道你服务器ip就随便登录你的mysql了,不然就给服务器3306端口加上来源限制,真的血的教训)
// 设置远程连接权限
grant all on *.* to 'root'@'%';
//刷新权限
flush privileges;
更多推荐
已为社区贡献1条内容
所有评论(0)