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