Centos7下安裝Docker : http://www.javashuo.com/article/p-sisqapkv-me.htmlhtml
https://www.runoob.com/docker/centos-docker-install.htmlmysql
https://www.runoob.com/docker/docker-install-mysql.htmlsql
docker pull mysql:5.6
##新建目錄和文件 sudo mkdir -p /usr/local/mysqlData/master/cnf sudo mkdir -p /usr/local/mysqlData/master/data sudo mkdir -p /usr/local/mysqlData/slave/cnf sudo mkdir -p /usr/local/mysqlData/slave/data sudo touch /usr/local/mysqlData/master/cnf/mysql.cnf sudo touch /usr/local/mysqlData/slave/cnf/mysql.cnf
編輯 /usr/local/mysqlData/master/cnf/mysql.cnfdocker
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql symbolic-links=0 character-set-server = utf8 #skip-networking innodb_print_all_deadlocks = 1 max_connections = 2000 max_connect_errors = 6000 open_files_limit = 65535 table_open_cache = 128 max_allowed_packet = 4M binlog_cache_size = 1M max_heap_table_size = 8M tmp_table_size = 16M read_buffer_size = 2M read_rnd_buffer_size = 8M sort_buffer_size = 8M join_buffer_size = 28M key_buffer_size = 4M thread_cache_size = 8 query_cache_type = 1 query_cache_size = 8M query_cache_limit = 2M ft_min_word_len = 4 log-bin = mysql-bin server-id = 1 binlog_format = mixed performance_schema = 0 explicit_defaults_for_timestamp #lower_case_table_names = 1 interactive_timeout = 28800 wait_timeout = 28800 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M read_buffer = 4M write_buffer = 4M
編輯/usr/local/mysqlData/slave/cnf/mysql.cnf數據庫
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql symbolic-links=0 character-set-server = utf8 #skip-networking innodb_print_all_deadlocks = 1 max_connections = 2000 max_connect_errors = 6000 open_files_limit = 65535 table_open_cache = 128 max_allowed_packet = 4M binlog_cache_size = 1M max_heap_table_size = 8M tmp_table_size = 16M read_buffer_size = 2M read_rnd_buffer_size = 8M sort_buffer_size = 8M join_buffer_size = 28M key_buffer_size = 4M thread_cache_size = 8 query_cache_type = 1 query_cache_size = 8M query_cache_limit = 2M ft_min_word_len = 4 log-bin = mysql-bin server-id = 2 binlog_format = mixed performance_schema = 0 explicit_defaults_for_timestamp #lower_case_table_names = 1 interactive_timeout = 28800 wait_timeout = 28800 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M read_buffer = 4M write_buffer = 4M
##master容器啓用 sudo docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6 ##進入master容器 sudo docker exec -it master /bin/bash root@ebc7017a58ef:/# ##slave容器啓用 sudo docker run -itd -p 3308:3306 --name slave -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6 root@ee3bb51b4d14:/#
##防火牆設置容許端口訪問 sudo firewall-cmd --add-port=3307/tcp --permanent sudo firewall-cdm --add-port=3308/tcp --permanent sudo firewall-cmd --reload ##設置master數據庫訪問權限 root@ebc7017a58ef:/# mysql -uroot -p123456 mysql>grant all privileges on *.* to reader@'%' identified by 'readerpwd' with grant option; Query OK, 0 rows affected (0.01 sec) mysql>flush privileges; Query OK, 0 rows affected (0.01 sec) ##設置slave數據庫訪問權限 root@ee3bb51b4d14:/# mysql -uroot -p123456 mysql>grant all privileges on *.* to slave@'%' identified by 'slavepwd' with grant option; Query OK, 0 rows affected (0.01 sec) mysql>flush privileges; Query OK, 0 rows affected (0.01 sec)
##登陸master數據庫查看master狀態 mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000002 | 204 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql> 其中mysql-bin.000002爲日誌文件,後面會用到 ##配置slave mysql> change master to master_host='172.17.0.6',master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000002',master_log_pos=501; ##參數說明 master_host,master數據庫的ip地址 master_user,鏈接master數據庫的用戶名 master_password,master_user的密碼 master_log_file,日誌文件,上一步中,master status對應的文件 ##啓動slave,slave的操做有幾個,start,stop和restart mysql> start slave; ##查看slave狀態 mysql> show slave status;