Docker:Docker部署mysql数据库
阅读原文时间:2021年10月06日阅读:1

docker部署mysql : 8.0

1.在宿主机创建mysql挂载目录

#创建目录
mkdir /home/mysql/conf

mkdir /home/mysql/logs

mkdir /home/mysql/data

2.docker拉取MySQL镜像

docker pull mysql:latest

3.创建mysql容器

docker run --name mysql -p 3308:3306 -v /home/mysql/conf:/etc/mysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

参数解释:

  • --name 容器名字
  • -p 3308:3306 物理机端口:容器内部端口
  • -e 运行参数 初始化 root 用户的密码
  • -d 后台运行 mysql/mysql-server:5.5 下载的镜像名字加标签
  • -v /home/mysql/conf:/etc/mysql:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。//配置文件目录
  • **-v **/home/mysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。//数据库文件存放目录

4.进入容器内部

docker exec -it mysql bash

5.进入mysql

mysql –u root –p

6.修改远程连接

#指定数据库
use mysql;
#查看用户连接范围
select user, host from user;
#修改mysql允许远程连接
update user set host='%' where user='root';
#刷新
flush privileges;

7.设置Navicat连接

mysql8.0使用Navicat连接会报错:Client does not support authentication protocol requested by server;consider upgrading MySQL client.

解决方法:

#修改mysql加密机制
alter user 'root' IDENTIFIED WITH mysql_native_password by 'mysql密码';
#刷新
flush privileges;

8.本机连接方式

# 本机连接容器内的数据库,(我们将容器内的3306端口映射到了本机的3308,所以我们通过3308端口访问)
mysql -u root -p -h 127.0.0.1 -P 3308

文章转载至:https://www.cnblogs.com/liuyublog/p/9099376.html