设为首页 加入收藏

TOP

MySQL 5.7多源复制配置详解(二)
2018-11-26 18:10:49 】 浏览:190
Tags:MySQL 5.7 复制 配置 详解
t=5603
# mysql数据存放路径
datadir=/var/lib/mysql
# mysql socker文件存放路径
socket=/var/lib/mysql/mysql.sock
# 创建符号链接(建议禁用符号链接,以防止各种安全风险。开启将参数的值设置为1)
symbolic-links=0
# 错误日志存放路径
log-error=/var/log/mysqld.log
# 启动pid文件存放路径
pid-file=/var/run/mysqld/mysqld.pid
# 设置主从的时候的唯一ID 每台主机的ID不可重复
server-id=1
# #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin
log-bin=mysql-bin
# 设定mysql的复制模式(STATEMENT  ROW  MIXED)
binlog_format=mixed
# 绕过密码验证可直接使用root登录(用于修改密码)
#skip-grant-tables=1
# 启动服务器来禁用主机名缓存
skip-host-cache
# 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。
skip-name-resolve
# 网络传输时单个数据包的大小
max_allowed_packet = 500M
# 设置数据库的时间
default-time-zone = '+8:00'
# 内部内存临时表的最大内存
tmp_table_size=200M
# MySQL服务器用来作普通索引扫描、范围索引扫描和不使用索引而执行全表扫描???些操作所用的缓存大小。
join_buffer_size = 32M
# 每个会话执行排序操作所分配的内存大小。
sort_buffer_size = 1M
# 每个客户端线程和连接缓存和结果缓存交互,每个缓存最初都被分配大小为net_buffer_length的容量,并动态增长,直至达到max_allowed_packet参数的大小
net_buffer_length = 8K
# 为每个线程对MyISAm表执行顺序读所分配的内存。如果数据库有很多顺序读,可以增加这个参数,默认值是131072字节。
read_buffer_size = 512K
# 这个参数用在MyISAM表和任何存储引擎表随机读所使用的内存。
read_rnd_buffer_size = 32M
# 在REPAIR TABLE、CREATE INDEX 或 ALTER TABLE操作中,MyISAM索引排序使用的缓存大小。
myisam_sort_buffer_size = 256M
# 设置客户端的并发连接数量
max_connections = 8000
# mysql关闭非交互连接前的等待时间,单位是秒
wait_timeout = 604800
# Mysql关闭交互连接前的等待时间,单位是秒
interactive_timeout = 604800
# 设定远程用户必须回应PORT类型数据连接的最大时间
connect_timeout = 30
# 如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。
max_connect_errors = 30000
# mysql关闭连接前的等待时间,单位是秒
interactive_timeout = 86400
# 慢查询的时间设置,单位为秒
long_query_time = 20
# mysql服务缓存以重用的线程数
thread_cache_size = 120
# 为查询结果所分配的缓存
query_cache_size = 256M
# 如果一个事务需要的内存超过这个参数,就会报错
max_heap_table_size=2097152000


2、修改192.168.1.133也就是从库的/etc/my.cnf 配置参数,配置如下:(记得修改server-id为3,不能和其他服务器id一样,切记!!!)


3、重新启动mysql服务:systemctl restart mysqld


4、升级mysql授权表:mysql_upgrade -uroot -p


5、登录192.168.1.131和192.168.1.132的mysql:mysql -uroot -p


6、以下的执行都是在192.168.1.131和192.168.1.132的mysql中执行sql语句


创建mysql的主从授权用户:grant replication slave on *.*  to 'slave'@'192.168.1.%' identified by '2017123';


刷新生效:FLUSH PRIVILEGES;


7、登录192.168.1.133的mysql执行sql语句:


8、全部显示sql语句执行ok,然后查看主从的状态:


执行sql语句:show  slave  status\G;


如果要查看单一信道的复制的详细状态,可以使用以下命令:


SHOW SLAVE STATUS FOR CHANNEL 'master1'\G;


9、在主库(192.168.1.131)实例创建一些数据。


10、在主库(192.168.1.132)实例创建一些数据。


11、在从库(192.168.1.133)实例检查数据是否成功复制。


12、列出所有的复制信道的复制状态概况:


13、在 performance_schema 库中,提供了复制相关的一些视图,可供查看复制相关的信息。


use performance_schema;
 
show tables like '%repl%';


这些表里分别有多源通道的配置信息和多源通道的状态信息,另外还有连接配置信息和连接状态信息,如果配置了多线程复制的话,还会有多线程配置信息和多线程状态信息。


其它一些需要注意的点:


 初次配置耗时较长,需要将各个 master 的数据 dump 下来,再 source 到 slave 上。


 需要考虑各 master 数据增长频率,slave 的数据增长频率是这些数据的总和。如果太高,会导致大量的磁盘IO,造成数据更新延迟,最严重的是会影响正常的查询。


 如果多个主数据库实例中存在同名的库,则同名库的表都会放到一个库中;


 如果同名库中的表名相同且结构相同,则数据会到一起;如果结构不同,则先建的有效。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL 优化配置参数(my.cnf) 下一篇MySQL事务及其实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目