目录
一、mysql镜像拉取和下载
1.mysql镜像查询
打开docker hub 网站
dockerHub官网地址
在上方搜索栏里输入mysql
2.mysql镜像拉取
找到要拉取的镜像版本,在tag下找到版本
回到虚拟机界面,执行下面命令来拉取mysql镜像
##不指定版本号,默认下载最新版本:
docker pull mysql
##指定版本号:
docker pull mysql:8.0.20
3.mysql镜像下载
##将镜像打包成tar
docker save -o mysql_8_0_20.tar mysql:8.0.20
##将tar还原成镜像
docker load -i mysql_8_0_20.tar
##查看镜像
docker images
##将容器生成新的镜像
# id:做过更改容器的id
# name:镜像名,随意命名
#例如:docker commit a404c6c174a2 mymysql:v1
docker commit id name
二、创建mysql容器实例
1.创建宿主机映射数据卷
## /opt/mysql/conf配置文件目录
## /opt/mysql/data数据文件目录
## /opt/mysql/logs日志文件目录
mkdir -p /opt/mysql/conf /opt/mysql/data /opt/mysql/logs
chmod 755 -R /opt/mysql
2.my.conf配置文件
[mysqld]
##数据目录
#datadir=/var/lib/mysql
#使用mysql8以前的密码插件,以便navicat等工具能够正常连接
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
character_set_server = utf8
##设置允许 load data导入、导出的位置,没有值时,表示不限制mysqld在任意目录的导入导出
secure_file_priv=''
#binlog日志过期时间,超过30天的binlog自动删除,binlog日志可用于数据恢复
expire_logs_days=30
[mysqld_safe]
character_set_server = utf8
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[client]
default-character-set = utf8
3.创建容器
docker run -d \
--restart=always \
--privileged=true \
--name mysql \
-p 3306:3306 \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
4.查看创建的mysql容器
docker ps -a
三、修改root密码及放开远程访问权限
docker exec -it mysql /bin/bash
mysql -uroot -p
use mysql
##查询user表
select host,user,plugin from user;
##如果有多条root用户数据,先删除多余的行
delete from user where user ='root' and host='%';
##设置所有host都可以访问
update user set host = '%' where user = 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
flush privileges