--------------拉取容器------------
docker pull mysql:5.7
--------------創建目錄------------
mkdir /data/docker/mysql/conf
mkdir /data/docker/mysql/data
mkdir /data/docker/mysql/logs
--------------修改mysql配置文件,內容在最下面------------
vi /data/docker/mysql/conf/my.cnf
--------------分配權限------------
chmod -R 777 /data/docker/mysql/
--------------創建容器------------
docker run --net=host --name mysql --restart=always \
-v /data/docker/mysql/conf:/etc/mysql \
-v /data/docker/mysql/logs:/var/log/mysql \
-v /data/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
--------------進入容器------------
docker exec -it mysql /bin/bash
--------------進入容器后,并登錄mysql------------
mysql -uroot -p123456
grant all privileges on *.* to root@'%' identified by "123456";
create user canal identified by 'canal';
grant select, replication slave, replication client on *.* to 'canal'@'%';
flush privileges;
--------------my.cnf內容------------
[client]
#客戶端設置
port????= 3306
socket????= /data/mysql/data/mysql.sock
default-character-set = utf8mb4
[mysqld]
user????= mysql
port????= 3306
socket????= /data/mysql/data/mysql.sock
server-id = 1
pid-file = /data/mysql/data/mysql.pid
#安裝目錄
basedir????= /usr/local/mysql
#數據庫存放目錄
datadir????= /var/lib/mysql/
#系統數據庫編碼設置,排序規則
character_set_server = utf8mb4
collation_server = utf8mb4_bin
back_log = 1024
explicit_defaults_for_timestamp = ON
lower_case_table_names = 0
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
max_allowed_packet = 8M
thread_stack = 256K
thread_cache_size = 384
skip-external-locking
interactive_timeout = 600
wait_timeout = 3600
log_timestamps = SYSTEM
log-error = /data/mysql/logs/error.log
#默認使用InnoDB存儲引擎
default_storage_engine = InnoDB
innodb_buffer_pool_size = 64M
innodb_purge_threads = 1
innodb_log_buffer_size = 2M
innodb_log_file_size = 128M
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 8M
# MySQL重建索引時所允許的最大臨時文件的大小
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
# 開啟 binlog
log-bin=mysql-bin
# 選擇 ROW 模式
binlog-format=ROW
# 配置 MySQL replaction 需要定義,不要和 canal 的 slaveId 重復
server_id=1
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M