当然首先 docker pull mysql

mkdir /usr/local/mysqlData/master/cnf
mkdir /usr/local/mysqlData/master/data
vi /usr/loal/mysqlData/master/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 = 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

docker run -itd -p : --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=masterpwd 5709795eeffa

,并添加复制master数据的用户,等下会用上

[root@ ~]# docker exec -it 942c2253509c /bin/bash
root@942c2253509c:/# mysql -uroot -pmasterpwd mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'masterpwd' WITH GRANT OPTION;
Query OK, rows affected, warning (0.00 sec)
mysql> GRANT REPLICATION SLAVE ON *.* to 'reader'@'%' identified by 'readerpwd';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mkdir /usr/local/mysqlData/slave/cnf
mkdir /usr/local/mysqlData/slave/data
vi /usr/loal/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

 创建远程连接用户,并赋予查询数据库,以及查询的权限,可以用于读写分离

docker run -itd -p : --name master -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=slavepwd 5709795eeffa

#进入容器开启root 远程访问
[root@ ~]# docker exec -it 942c2253509c /bin/bash
root@942c2253509c:/# mysql -uroot -pslavepwd
mysql> grant SHOW DATABASES,SELECT on *.* to 'slave'@'%' identified by 'slavepwd';
mysql> FLUSH PRIVILEGES;
Query OK, rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin. | | | | |
+------------------+----------+--------------+------------------+-------------------+
row in set (0.00 sec)

mysql> change master to master_host='192.168.1.9',master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000007',master_log_pos=;
Query OK, rows affected, warnings (0.03 sec) mysql> start slave;
Query OK, rows affected (0.03 sec) mysql> show slave status\G
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.9
Master_User: reader
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: 0b763a8d1ddd-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

mysql> create database slavetest;
Query OK, row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| slavetest |
| sys |
+--------------------+
rows in set (0.00 sec)

最新文章

  1. ArcGIS图层和要素的过滤显示
  2. HL AsySocket 服务开发框架 - 一般性测试1
  3. linux硬盘分区格式化及挂载
  4. iOS开发 在scrollView上增加滑动手势(Pan)
  5. 更换免开发证书账号出现的Your build settings specify a provisioning profile with the UUID"",however,no such provisioning profile was found
  6. Python多线程学习笔记
  7. Storm系列(十五)架构分析之Executor-Spout
  8. C#垃圾回收
  9. [MVC4-基礎] 連動DropDownList - 使用jQuery、JSON
  10. WinForm - ListView点击空白事件
  11. Android学习20--OpenGL的"mapPoints"
  12. Linux基础(四)
  13. hihocoder 1249(2015ACM/ICPC北京)
  14. 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
  15. eshint的配置
  16. node 中 安装 yarn
  17. nmap的使用
  18. Daily Scrumming* 2015.12.18(Day 10)
  19. 转载:详解Java 自动装箱与拆箱的实现原理
  20. Java项目--俄罗斯方块

热门文章

  1. linkin大话设计模式--桥接模式
  2. 清除Chrome浏览器的历史记录、缓存
  3. 解决IE中placeholder的兼容问题
  4. docker入门(二)容器与镜像的关系
  5. win10 store 无法连接网络
  6. python并发编程之多进程(实现)
  7. Sonar 常用代码规则整理(二)
  8. windows系统下安装Eclipse for PHP
  9. Java对Jar文件的操作[转]
  10. HDU 4333 Revolving Digits