使用docker创建mysql数据库:
1.查找Docker Hub上的mysql镜像:
docker search mysql
这里我们拉取官方的镜像,标签为5.6
docker pull mysql:5.6
然后查看下本地的所有镜像:
docker images
2.创建并启动一个Mysql容器:
1 |
|
然后查看容器的运行状态:
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
命令详解:
- -p 3306:3306 将容器的3306端口映射到主机的3306端口
- -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 初始化root用户的名称
- -d 以后台方式运行
sudo docker update mysql –restart=always //虚拟机启动,mysql跟随重启 (mysql是自己给容器起的名字,也可以容器id)
exit //退出容器
docker restart container_id/names进入mysql容器:
docker exec -it container_id/names