docker创建mysql

使用docker创建mysql数据库:

1.查找Docker Hub上的mysql镜像:

docker search mysql





这里我们拉取官方的镜像,标签为5.6

docker pull mysql:5.6

然后查看下本地的所有镜像:

docker images





2.创建并启动一个Mysql容器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

输入一下命令:

docker run --name xx -e MYSQL_ROOT_PASSWORD=xx -p 3306:3306 -d mysql

–name:给新创建的容器命名,此处命名为xx

-e:配置信息,此处配置`mysql`的`root用户`的登陆密码

-p:端口映射,此处映射`主机3306端口`到`容器name的3306端口`

-d:成功启动容器后输出容器的完整ID

最后一个`mysql`指的是`mysql镜像名字`

然后查看容器的运行状态:

docker ps





此时mysql的创建已经完成;然后就是打开mysql 3306的端口 这个请自行百度或者查看我的

hexoBaseOperation博客;

3.使用Navicat连接数据库

连接时可能会提示如下的错误:

2059 -Authentication plugin ‘caching_sha2_password’ cannot be loaded;

这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。 此时需要进入mysql中修改加密规则:

进入mysql

mysql -uxx -pxx (u表示用户名 p表示数据库密码)

修改加密规则及密码,然后刷新即可

ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘你有的mysql密码’ PASSWORD EXPIRE NEVER; 修改加密规则

ALTER USER ‘root‘@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的mysql密码’; #修改密码
FLUSH PRIVILEGES; #刷新数据

注:’localhost’可以用‘%’代替表示所有

然后重新使用Navicat链接既可。

4.Linux中如何进入docker镜像Mysql数据库

docker ps —查询所有容器





然后启动容器的id

docker start 003b99142b74d (这个看上图的CONTAINER ID)

然后执行

docker exec -it pwc-mysql bash;(其中pwc-mysql 为上图的NAMES对应的值 我这里是pwc-mysql)

退出命令:

exit;

新:

docker pull mysql:xx(版本号,不加默认拉取最新版本)

//启动命名

docker run -p 3306:3306 –name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

命令详解:

  1. -p 3306:3306 将容器的3306端口映射到主机的3306端口
  2. -v /mydata/mysql/log:/var/log/mysql 将日志文件夹挂在到主机
  3. -v /mydata/mysql/data:/var/lib/mysql\ 将配置文件加挂在到主机
  4. -v /mydata/mysql/conf:/etc;mysql\ 将数据文件夹挂在到主机
  5. -e MYSQL_ROOT_PASSWORD=root 初始化root用户的名称
  6. -d 以后台方式运行

sudo docker update mysql –restart=always //虚拟机启动,mysql跟随重启 (mysql是自己给容器起的名字,也可以容器id)

exit //退出容器
docker restart container_id/names

进入mysql容器:
docker exec -it container_id/names