这几天尝试了下,看看mysql8的性能如何,使用的docker,下载了mysql8的镜像,现把安装和链接遇到的问题归纳如下
Docer使用多个mysql
由于我使用的docker作为开发工具,之前有使用mysql5.7的版本,现在增加容器,需要修改mysql端口
mysql:
build:
context: ./mysql
args:
- MYSQL_DATABASE=homestead
- MYSQL_USER=homestead
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=root
volumes:
- mysql:/var/lib/mysql8
此处指定mysql新端口为3309##
ports:
- "3309:3306"
运行之后,mysql容器正常起来了,但是navicat死活链接不上,没办法接着搞;
修改mysql初始密码和host
原来mysql8的安全机制更高可能,不允许初始化密码链接,所以首先要修改初始密码
进入容器修改 docker-compose exec mysql bash
由于我已经修改过密码了,直接使用修改后的123456登录,第一次修改可以自己使用
mysql
或者是你设置的初始密码
- 修改初始密码
select host,user,plugin,authentication_string from mysql.user;
备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码所以直接修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更新user为root,host为localhost 的密码为123456
修改完之后,再次链接,还是报错,,没办法继续搞
- 修改host
之前咱们已经看到host为localhost,可以大多数时候咱们并不一定是使用本地连接,所以修改你的mysqlhost为你的常用ip或者干脆点直接%
update user set host = '%' where user = 'root';
-
重启容器,再次链接
查看mysql版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.11 |
+-----------+
1 row in set
mysql>