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