navicat连接云服务器docker容器中的mysql

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错误,那就是还没有给远程登录权限

解决步骤:

  1. 在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;
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值