Docker 安装mysql 并挂载本地数据

124 阅读1分钟

参考:

www.cnblogs.com/sheseido/p/…

Commands

docker pull mysql:8.0.36

sudo groupadd mysql
sudo useradd -r -g mysql mysql

sudo mkdir -p ~/data_volume/mysql/data
sudo mkdir -p ~/data_volume/mysql/conf/mysql/conf.d
sudo mkdir -p ~/data_volume/mysql/log


sudo chown -R mysql:mysql mysql/data
sudo chown -R mysql:mysql  mysql/conf/mysql/conf.d
sudo chown -R mysql:mysql mysql/log


docker run --restart=always --name mysql \
-v ~/data_volume/mysql/data:/var/lib/mysql \
-v ~/data_volume/mysql/conf/mysql:/etc/mysql \
-v ~/data_volume/mysql/log:/var/log/mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.36 

my.cnf

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
ssl=0
bind-address = 0.0.0.0
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
expire_logs_days=12
log-bin =/var/log/mysql/mysql-bin.log
log_output = FILE
slow_query_log = 1
slow_query_log_file=/var/log/mysql/mysqld_slow.log
[client]
socket=/var/run/mysqld/mysqld.sock

Validate Config

Ref:MYSQL config 解析 developer.aliyun.com/article/791…

docker exec -it  mysql /bin/bash
SHOW VARIABLES LIKE '%log%';

#others
sudo rm my.cnf && sudo touch my.cnf && sudo chown -R mysql:mysql my.cnf && sudo vim my.cnf

image.png