1.镜像仓库搜索mysql


2.拉取最新镜像

3.拉取指定版本镜像
docker pull mysql:版本号
例如:
docker pull mysql:5.7
4.查看下载镜像
docker images
5.创建实例并启动

docker run --privileged=true --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /usr/local/docker_data/mysql/data:/var/lib/mysql -v /usr/local/docker_data/mysql/conf:/etc/mysql/ -v /usr/local/docker_data/mysql/logs:/var/log/mysql mysql:8.0.22
可能会出现下面的情况


改用下面的命令即可
docker run -p 3306:3306 --privileged=true -v /mysql/data:/var/lib/mysql -v /mysql/log:/var/log/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysql-server -d mysql:8.0.22
6.查看启动中容器
docker ps
7.进行mysql容器,证明是一个完整独立的运行环境
docker exec -it 容器id或容器名称 /bin/bash
docker exec -it mysql /bin/bash
ls
whereis mysql
8.docker容器文件挂载与端口映射
/etc/mysql:mysql配置文件目录
/var/log/mysql:mysql日志文件目录
/var/lib/mysql:mysql数据文件
9.修改mysql配置文件

vi /mydata/mysql/conf/my.cnf
[client]
设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
设置mysql的安装目录
#basedir=E:\05install\mysql\mysql-5.7.19-winx64
设置mysql数据库的数据的存放目录
#datadir=E:\05install\mysql\mysql-5.7.19-winx64\data
允许最大连接数
max_connections=200
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#collation-server=utf8_general_ci
collation-server=utf8_unicode_ci
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
免密码登陆
skip-grant-tables
skip-character-set-client-handshake
#解决mysql连接慢的问题
skip-name-resolve
group by 查询报错
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#忽略大小写
lower_case_table_names=1
10.重启mysql
docker restart mysql
可以进入容器,查看容器中mysql配置文件也会存在
11.设置开机启动mysql
docker update mysql --restart=always
12.关闭开机启动mysql
docker update mysql --restart=no
203

被折叠的 条评论
为什么被折叠?



