说明:Docker安装详见《docker的安装与更换yum源》教程
一、拉取Mysql镜像
1.1 查看mysql的docker镜像
docker search mysql
1.2 拉取mysql镜像
1.2.1拉取最新版mysql
docker pull mysql
1.2.2 拉取官方特定版本
点击进入docker查看[tag] https://hub.docker.com/
docker pull mysql:[tag]
docker pull mysql:5.7.32
1.2.3 查看拉取的镜像
docker images | grep mysql
二、启动Mysql
2.1 创建挂载目录
mkdir /usr/local/docker/mysql
2.2 复制挂载文件
2.2.1 可以通过本地文件直接复制
2.2.2 可以直接复制docker容器里的文件
2.2.2.1先启动用于复制文件的docker_mysql 容器
sudo docker run -d --name mysqltest mysql:5.7.32
2.2.2.2查看容器
docker ps
2.2.2.3复制容器中的文件到宿主机
docker exec -it [ID] /bin/bash
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为conf。注意:conf文件复制前不能存在
docker cp [ID]:/etc/mysql /usr/local/docker/mysql/conf
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为data。注意:data文件复制前不能存在
docker cp [ID]:/var/lib/mysql /usr/local/docker/mysql/data
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为logs。注意:logs文件复制前不能存在
docker cp [ID]:/var/log/mysql /usr/local/docker/mysql/logs
2.3 启动容器
2.3.1 启动mysql docker容器
docker run \
-d \
--network=host \
--hostname=localhost \
--name mysql \
-v /usr/local/docker/mysql/conf/:/etc/mysql/ \
-v /usr/local/docker/mysql/data/:/var/lib/mysql/ \
-e MYSQL_ROOT_PASSWORD=string@1307 \
--restart=always \
mysql:5.7.32 \
--lower_case_table_names=1
2.3.2 根据需要进入已启动的容器
docker exec -it [ID] /bin/bash
2.3.3 mysql的配置文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/socket/mysql.sock
lower_case_table_names=1
skip-name-resolve
innodb_flush_log_at_trx_commit=0
sync_binlog=0
secure-file-priv=NULL
max_allowed_packet=10M
max_connections=2000
wait_timeout=3600
interactive_timeout=3600
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[client]
socket=/usr/local/mysql/socket/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql/logs/mysql.log
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
三、Mysql授权登录
3.1 登录mysql
mysql -uroot -p
3.2 授权远程登录
这里的root用户已经经过启动容器的时候进行了设置,所以就不用设置了。默认root是由所有权限,且允许任何主机登录的,这和源码安装的mysql是有所区别的。
3.3 验证连接
3.3.1 使用工具验证连接
3.3.2 验证大小写敏感
show variables like 'lower%';