一、拉取镜像,这里默认拉取最新版本的
docker pull mysql
二、创建容器
docker run -tdi --name container_cloud_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=mrajoe mysql
参数解释:
-p 代表端口映射,格式: 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
进入容器:
docker exec -it container_cloud_mysql /bin/bash
登录mysql,命令: mysql -u root -p 输入创建容器时设置的root密码,即可登录,如下所示:
接下来就可以使用navicat连接数据库了~~~~~
============= 分割线=============
如果通过navicat 连接失败,报 Client does not support authentication protocol,则可以尝试一下解决办法
1、进入mysql容器
docker exec -it container_cloud_mysql /bin/bash
2、登录mysql
mysql -u root -p
根据提示,输入设置好的root密码,即可登录
3、进行授权
grant all on *.* to 'root'@'%';
4、刷新权限
flush privileges;
注意,这个时候还不能远程访问,因为Navicat只支持旧版本的加密,我这里使用的是新版的mysql,因此需要更改mysql的加密规则
5、修改mysql加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
6、修改root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mrajoe';
7、修改完mysql配置后,需要更新权限,指令如下:
flush privileges;
到此,就可以通过navicat连接mysql了