属性更加好的新服务器申请下来了,大家决定在2台新服务器上运用mysql5.7,况兼使用基本同步、读写抽离架构,非常不幸那些职责落到了本人的头上。读写分离是在业务代码中完毕的,在这里不做详述,介绍一下本身搭建MySQL主从的长河。
MySQL主从送别
后生可畏:测量试验情形介绍
主从复制测量试验景况是ubuntu mysql5.7,master服务器ip是192.168.71.135,slave服务器ip是192.168.71.137,ubuntu碰着是从风流罗曼蒂克台已安插好条件的服务器克隆的。
二:mysql主从安顿
1:) master配置
a 在mysql 目录下(/etc/mysql卡塔尔国,mysql.cnf文件中增多server-id和Log-bin.主从服务器的server-id不能够平等
log-bin=mysql-bin
server-id=100
设置好后,使用show master status;查询一下情景
安装从服务器连接的账号,密码等
布置连接顾客
GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'%' identified by '密码';这里是测量检验,未有一点点名从服务器的ip.如需点名ip,施行上面一个指令
GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'192.168.71.137' identified by '密码';
配置好后记录重启mysql.
2:)配置从数据库
2.1
Slave的配置与master相符(配置文件名称:mysql.cnf,在/etc/mysql目录,你的境况只怕不是该目录),你安顿完结后依然需求重启slave的MySQL。配置参数如下:
log_bin= mysql-bin
server_id= 110
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
server_id是必得的,并且唯生机勃勃。slave未有供给开启二进制日志,不过在部分状态下,必需设置,举例,倘若slave为任何slave的master,必需设置bin_log。在那,大家张开了二进制日志,并且展现的命名(私下认可名称叫hostname,不过,假设hostname改换则会产出难点)。
relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自身的二进制日志(后边探问到它的用项)。
稍稍人展开了slave的二进制日志,却从不设置log_slave_updates,然后查看slave的多少是或不是变动,那是大器晚成种错误的布署。所以,尽量选拔read_only,它幸免更换多少(除了特殊的线程)。不过,read_only并是很实用,特别是这么些急需在slave上成立表的运用。
2.2 配置实现后再行起动mysql
/etc/init.d/mysql restart
2.3 实行一同SQL语句
mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’, -- 该值来源于主库,试行show master
status 后的File字段
master_log_pos=443;-- 该值来源于主库,施行show master status
后的position字段**
2.4 查询从库状态
start slave;
show slave statusG
三:主库SQL测试
主库创制数据库:
Create database copytest;
创建表:
Create table tu (uid bigint primary key);
增添一条数据
Insert into tu (1);
今昔大家来看从数据库:
从图中得以观察,主库的数量,已经复制到了从库。
五:总计难点
1:推行一同语句,出错
mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’,
master_log_pos=443;
现身如下错误:
Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
消除办法:
删除slave的mysql库的表
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
重复开动slave数据库:/etc/init.d/mysql restart;
2:配置好的,slave实践show slave statusG语句后,slave_io_running: no显示no
slave_io_running: yes技艺健康复制,为no时不恐怕复制,能够见到有多少个荒唐,
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
意思是master和slave的uuid重复了,用show variables like '%server_uuid%'查询出uuid,显著两台机子的uuid同样,所以现身了地点的错误.
因为基本的utunbu情状是仿制的,所以现身了这几个难点,大家进去mysql的data 目录,改过auto.cnf文件,通过show variables like '
本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:MySQL主从拜别,mysql主从笔记