Docker全系列 - Docker部署MySQL

54 阅读1分钟

Docker部署MySQL

(1):完成Docker运行环境安装

(2):拉取MySQL对应版本镜像

[root@localhost ~] docker pull mysql:[版本,8 | 5.7]

(3):创建Docker容器

[root@localhost ~] docker run -d -p [主机映射端口]:3306 -v [宿主机数据卷映射目录]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[mysql初始用户访问密码] --name=[容器备注名称] mysql:8

(4):替换MySQL默认配置文件内容

[client]
user        = root
password    = root
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld]
federated
skip-name-resolve # 跳过DNS验证,加快客户端连接速度

default-time_zone = '+8:00' # 设置MySQL的时区为UTC+8
gtid_mode = on
enforce_gtid_consistency = on
server-id = 1
    
port        = 3306
socket      = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 8
tmp_table_size = 16M
performance_schema_max_table_instances = 500

explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 15000
max_connect_errors = 100
open_files_limit = 65535
default_authentication_plugin = mysql_native_password

log-bin=mysql-bin
binlog_format=mixed
binlog_expire_logs_seconds = 864000
early-plugin-load = ""

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 3G
innodb_log_file_size = 512M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer_size = 2M
write_buffer_size = 2M

[mysqlhotcopy]
interactive-timeout

[root@localhost ~] docker cp my.cnf [容器ID]:/etc/my.cnf
[root@localhost ~] docker restart [容器ID]

(5):配置完成,后续可通过exec命令进入容器

[root@localhost ~] docker exec -it [容器ID] /bin/bash