MAC上连接Docker下的最新版Mysql

Server 林涛 12778℃ 0评论

由于最新版Mysql采用了新的加密方式(例如 Mysql8),所以远程连接需要设置Mysql的配置。以下方法在Navicat上链接成功。

1. Mac上安装Docker和Mysql的Docker略去,见上一篇。

2. 运行镜像,设置root账号初始密码(123456),映射本地宿主机端口3306到Docker端口3306。

$ docker run -it –rm –name test_mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

3. 查看已运行的容器:

$ docker ps -a

4. 进入test_mysql容器:

docker exec -it test_mysql bash

5. 在容器内登陆Mysql

mysql -uroot -p123456

6. 查看root等用户信息

mysql> select user,host,authentication_string from mysql.user;

7. 为root分配权限,以便可以远程连接:

mysql> grant all PRIVILEGES on *.* to root@‘%’ WITH GRANT OPTION;

8. 使用Navicat链接会提示链接失败。因为Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,操作步骤如下:

mysql> ALTER user ‘root’@‘%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;

mysql> ALTER user ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

mysql> FLUSH PRIVILEGES;

9. 再次使用Navicat链接,提示成功。

10. 如果使用php链接

$mysqli = new mysqli("mysql的docker的ip", "root", "123456");

如需转载请注明: 转载自26点的博客

本文链接地址: MAC上连接Docker下的最新版Mysql

转载请注明:26点的博客 » MAC上连接Docker下的最新版Mysql

喜欢 (1)or分享 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

2 评论
内联反馈
查看所有评论
匿名

博主您好,我在mac上安装了docker,docker里面也安装了mysql 5.8。

我可以使用Navicat连接docker里的mysql,使用phpstorm内置的数据库连接也可以。但是我在写php连接mysql的时候发现连接不上,用了您说的方法,我找到了docker的ip,实际情况是mac ping不通docker,端口映射是这样的:主机的3307映射docker的3306
php语句:
$link = mysqli_connect(‘172.17.0.2′,’root’,’root’,’test’,’3306′);//执行超时,连接不上
$link = mysqli_connect(‘localhost,’root’,’root’,’test’,’3307′);//报错

2
0
希望看到您的想法,请您发表评论x