请小伙伴们在安装完 Docker, 并且安装好加速器后, 再来阅读这篇文章.
1. 拉去MySql 镜像
docker pull mysql
2. 查看镜像
docekr images
3. 创建目录
`mkdir -p /home/docker/mysql/conf.d``
``mkdir -p /home/docker/mysql/data`
这两个用于保存配置和数据
4. 创建 MySql 容器
docker run -di -p 3306:3306 -v /home/docker/mysql/conf.d:/etc/mysql/conf.d -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
-
-v 映射目录,将容器内的配置与数据文件夹,映射到宿主机目录
-
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
5. 进入 MySql 容器
docker exec -it mysql /bin/bash
6 登录 MySql
mysql -u root -p
输入密码, 即可进入 MySql , 证明安装成功
7. 打开远程连接
用 dataGrip 连接 MySQL, 如果无法连接, MySQL要开启远程连接, 方法如下:
1. 容器中登录 MySQL, 查看 MySQL 的版本
mysql> status;
2. 进行授权远程连接(需要注意的是, MySQL 8.0 跟之前的授权方式不一样), 授权
mysql> GRANT ALL ON *.* TO 'root'@'%';
3. 刷新权限
mysql> flush privileges;
4. 更改加密规则
此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
5. 更新 root 用户密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'QWERTY2345';
6. 刷新权限
mysql> flush privileges;
这样就能连接成功了