今天学习构建mysql 5.7.19版本的mysql的主从复制
碰到了一些坑,特定分享下:
- <李>
mysql的主从服务器是通过克隆虚拟机完成,导致uuid一样,需要修改auto.cnf文件
李> <李>在奴隶上想通过在里/etc/my . cnf中所做添加连接主人的配置,总是导致启动mysqld服务失败,看错误日志,说不支持的选项。原因是5.7.19里已经淘汰了在配置文件里加这种配置的方法了。
下面是部分笔记,特分享下。
mysql>显示变量如“% binlog %”;
| binlog_format ,,,,,,,,,,,,,| ROW ,
====
如何让程序能同时读取主和从服务器上的数据:
1。直接在程序里写死,那个业务访问那台MySQL服务器ip,定死。- - -》很傻,维护起来非常麻烦,需要开发的协助。
不同的业务,不同的服务器
- - - - -》MySQL (a)
B——在MySQL (B)
2。相同的业务,不同的服务器。使用域名解析来达到读写分离。- - -》比较简单,只要修改下域名对应的ip
写- - - - -》主
wdb.abc.com ——→132.1.1.5 主
读- - - - - -》主,从,,,
可以使用负载均衡域名解析
rdb.abc.com ——→132.1.1.1从
rdb.abc.com ——→132.1.1.2从
rdb.abc.com ——→132.1.1.3从
rdb.abc.com ——→132.1.1.4 从
rdb.abc.com ——→132.1.1.5 主
3。使用中间件来实现读写分离.oneproxy - - -》杭州平民软件- - - - - -》王广友
中间件里有个配置文件,会写明读往那些服务器,写往那台服务器。
开源:字符集
=====
主从复制- - - - - -》为读写分离做铺垫。- - -》提升性能的作用。
=====
MySQL replication 复制
,,master ,奴隶
,,write 读
=====
克隆克隆
1。先关闭计算机
=====
主从复制的前提条件:
2台MySQL服务器的数据是一样的。
=====
将主人和奴隶的ip地址配置好,不要一样,同时修改主机名为mysql_master ,mysql_slave
mysql>格兰特复制slave *。*“备份”@“192.168.0.139”被“123456”,
mysql>创建用户“repl”@“% .mydomain.com”被“slavepass”,
mysql>格兰特复制奴隶*。*“repl”@ % .mydomain.com的;
====
/etc/my . cnf中所做
服务器id=2
log-bin
主服务器=192.168.0.137
master-user=备份
主密码=123456
master-port=3306
目前不可行,总是报错
mysql官方给的解释:
复制奴隶Options 过时;废弃的主从复制的选项
以下选项在MySQL 5.5中被删除。如果你尝试用这些开始mysqld
选项在MySQL 5.5中,服务器中止一个未知变量错误。设置复制
参数以前这些选项,你必须使用修改主……
语句(参见13.4.2.1“语法修改主”)。
选项影响这个列表所示:
?——主服务器
?——master-user
?——主密码
?——master-port
?——master-connect-retry
?——master-ssl
?——master-ssl-ca
?——master-ssl-capath
?——master-ssl-cert
?——master-ssl-cipher
?——master-ssl-key
===
在从服务器的数据库里输入命令:
mysql>修改主master_host=192.168.0.137, master_user=氨阜荨?master_password=?23456’, master_port=3306;
mysql>开始奴隶;
查询好,0行影响(0.00秒)
mysql>
,,,,,,,Slave_IO_Running: No ,输入输出线程启动不起来
,,,,,,Slave_SQL_Running:是的
出错信息:
,,,,,,,,Last_IO_Error:致命错误:奴隶I/O的线程停止,因为主人和奴隶平等MySQL服务器uuid;这些uuid必须不同的复制工作
,原因是MySQL服务器的UUID一样
(root@mysql-slave MySQL) # pwd
/var/lib/mysql ,,- - -》存放在此目录下
(root@mysql-slave mysql) #,
(root@mysql-slave mysql) # vim auto.cnf ,修改此文件里的uuid
[汽车]server-uuid=7 fce030c - 9 - f7b 11 - e7 - b09f - 000 c29e2a2e4
(root@mysql-slave mysql) #服务mysqld重启
重定向/bin/systemctl restart mysqld。服务
(root@mysql-slave mysql) #,
,,,,,,,Slave_IO_Running:是的
,,,,,,Slave_SQL_Running:是的
====
不要在奴隶里写数据,会导致SQL螺纹线程不工作,如果已经写了,建议删除,重新启动下奴隶进程
mysql>开始奴隶;
===
relay-log.info - - -》记录上次从主服务器的binlog日志里什么位置,下次去复制下载主的binlog日志的时候,知道从哪里开始。