- 下载mysql镜像
$ docker search mysql (搜索mysql镜像)
$ docker pull mysql (下载mysql镜像,默认最新版本)
2.运行镜像
$ docker run -it --name mysql8 -p 3307:3306 -v /Users/qian/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
/*
参数说明
-p 3307:3306:将容器的3306端口映射到主机的3307端口
-v /Users/qian/docker/mysql/data:/var/lib/mysql:将主机目录/Users/qian/docker/mysql/data挂载到容器的目录/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456: 初始化root用户的密码
-it:运行交互式的容器,让docker运行的容器实现"对话"的能力
-d:后台运行容器,并返回容器ID
-name:命名容器
*/
这时候用navicat测试登陆报错:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
原因是mysql8.0改变了身份验证插件
3.查看已运行的容器
$ docker ps -a
4.进入mysql8容器
$ docker exec -it mysql8 bash
5.在容器内登陆mysql
root@74a6c7997285:/# mysql -uroot -p
6.查看root等用户信息
mysql> select user,host,authentication_string from mysql.user;
7.为root分配权限,以便可以远程连接
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
8.更新密码算法
mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> FLUSH PRIVILEGES;
-
连接navicat,新建库laswoole,在/Users/qian/docker/mysql/data中查看挂载成功
下载adminer镜像
$ docker pull adminer
- 运行adminer镜像
$ docker run --link mysql8:db -p 8080:8080 --name adminer -d adminer
-
浏览器访问 localhost:8080