dokcer 部署mysql
1、拉取mysql镜像
docker pull mysql:tag
# tag 是你的版本 比如mysql8 就是docker pull mysql:8
2、生成运行时目录
- 我们需要在mysql运行的时候将配置文件和data数据放到我们的物理机的硬盘上(避免这个服务出现错误)
# 这里我是放在home目录下面,可以根据习惯放在指定位置。
mkdir /home/mysql
mkdir /home/mysql/conf/
mkdir /home/mysql/logs/
mkdir /home/mysql/data/
3、设置配置文件
# 在mysql目录下新建 my.cnf 配置文件
cd /home/mysql
touch my.cnf
# 将文件修改为配置
# 这里 下面一行 [mysqld] 开始复制哦~
[mysqld]
# 这里解决大小问题必须在新建容器的时候就添加进来,否则在data文件有数据之后
# 添加会导致mysql报错而连接不到数据库
# 如果运行容器的时候没有添加,则需要将data文件夹全部删除
# 然后加上配置重新运行才能够解决。
lower_case_table_names=1 # 解决linux大小写问题;
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3、运行容器
docker run --restart=always --privileged=true
-v /home/mysql/data/:/var/lib/mysql
-v /home/mysql/logs/:/var/log/mysql
-v /home/mysql/conf/:/etc/mysql
-v /home/mysql/my.cnf:/etc/mysql/my.cnf
-p 3306:3306 --name my-mysql
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8