域名解析好了怎么做网站,广州做网站公司培训,网站图片轮播怎么做的,卖服装设计稿的平台提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言MySQL复制过程分为三部#xff1a; 一、准备工作二、配置主库Master三、配置从库SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、测试至此文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言MySQL复制过程分为三部 一、准备工作二、配置主库Master三、配置从库SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、测试至此主库分离成功实现 前言
介绍
MySQL主从复制是一个异步的复制过程底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库slave即从库从另一台MySQL数据库master即主库进行日志的复制然后解析日志并应用到自身最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能无需借助第三方工具 MySQL复制过程分为三部 master将改变记录到二进制日志binary log slave将master的binary log拷贝到它的中继日志relay log slave重做中继日志中的事件将改变应用到自己的数据库中 一、准备工作
1、提前准备好两台服务器分别安装Mysql 主库Master 192.168.100.66 从库Slave 192.168.100.67
2、使用克隆弄出另一台服务器的注意事项 博主两台linux服务器都是使用VMware虚拟机搭建的为了避免重装mysql的麻烦另外一台linux服务器是克隆出来的克隆之后必须修改Mac地址ipUUID还有mysql的UUID。
二、配置主库Master
1、在/etc/hosts里添加两侧主机的IP和主机名(选做) 例 192.168.100.66 mysql57 192.168.100.67 mysql57b 2、 先让所有的MYSQL数据库的UUID保持不同(如果你是直接复制的安装好MYSQL的虚拟机那么每个虚拟机上搭载的MYSQL数据库UUID是一致的)
vi /data/mysql_data/auto.cnf
[auto] server-uuidf787ff18-b491-11eb-9910-080027c8eeff 如果大家发现所有的MYSQL的uuid都是一个那么你就给他改一下 [auto] server-uuidf787ff18-b491-11eb-9910-080027c8eefa 3、主节点参数修改Mysql数据库的配置文件/etc/my.cnf
#MASTER-SLAVE server-id 1 binlog-do-dbhr #binlog-do-db binlog-ignore-dbmysql binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema binlog-ignore-dbsys #expire_logs_days7
参数说明 server-id 1 主节点的server-id集群中每一台服务器的server-id都不允许相同 binlog-do-dbhr 你需要复制的库 hr #binlog-do-dbtest binlog-ignore-dbmysql #不需要复制的库 binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema binlog-ignore-dbsys #expire_logs_days7 binlog日志过期天数设置 4、重新启动mysql数据库服务 servicer mysqld start 5、创建复制用户(主库) GRANT ALL PRIVILEGES ON . TO ‘repl’‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION; FLUSH PRIVILEGES; 三、配置从库Slave
1、从节点参数修改Mysql数据库的配置文件/etc/my.cnf server-id 2 read_only 1 #super_read_only1 relay-log-indexslave-relay-bin.index relay-logslave-relay-bin master_info_repositoryTABLE relay_log_info_repositoryTABLE #relay_log_recovery1
参数说明 server-id 2 从服务器的server-id 不能和主服务器相同
read_only 1 #super_read_only1 设置从库只读状态避免在从库上写操作但该指令对超级管理员是无效的mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。但是super_read_only这个参数大部分都是关闭掉的
relay-logslave-relay-bin 中转(中继)日志文件前缀名(base name) 也是默认在datadir目录下
relay-log-indexslave-relay-bin.index 中转(中继)日志后缀名默认host_name-relay-bin.index在datadir目录下。
master_info_repositoryTABLE 把master.info(主从状态配置信息)记录下来默认记录到file里面建议使用表记录
relay_log_info_repositoryTABLE realy_log_info_repository用来决定slave同步的位置信息记录在哪里同样有两个参数。如果relay_log_info_repositoryfile就会创建一个realy-log.info如果relay_log_info_repositorytable就会创建mysql.slave_relay_info表来记录同步的位置信息。
#relay_log_recovery1 #从机禁止写 为了让从库是crash safe的必须要设置relay_log_recovery1,该参数的含义是当从库发生崩溃或重启时它会把那些未做完的中继日志删除并向主库重新获取日志再次产生中继日志的恢复建议在从库上开启relay_log_recovery参数默认是关闭的。当然了你为了从库得到更好的优化效果的话请把它关掉 2、查看主库状态信息
show master status\G; show master status
mysql show master status;
-------------------------------------------------------------------------------------------------------------
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
-------------------------------------------------------------------------------------------------------------
| mysqlbin.000017 | 154 | hr | mysql,information_schema,performance_schema,sys | |
------------------------------------------------------------------------------------------------------------- 3、登录Mysql数据库配置将连接的主库信息 从库按照主库给出信息进行修改 change master to master_host‘192.168.100.66’, master_port3306, master_user‘repl’, master_password‘123456’, master_log_file‘mysqlbin.000017’, master_log_pos154;
注里面的信息要写自己主库的信息账号写自己创建的账号 4、查看从库信息状态 启动从库 进行测试 start slave; stop slave show slave status \G;
show slave status \G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.100.66Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysqlbin.000017Read_Master_Log_Pos: 154Relay_Log_File: slave-relay-bin.000002Relay_Log_Pos: 319Relay_Master_Log_File: mysqlbin.000017Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 154Relay_Log_Space: 526Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 1Master_UUID: 497bc227-19c5-11ee-a978-080027b1fb7dMaster_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:
1 row in set (0.00 sec)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
状态显示yes正常搭建成功
如果你的虚拟机崩溃了恢复后导致无法同步或者你多次配置从库的主库信息初始化阶段失败的话。
报错信息为初始化信息失败
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
先执行 reset slave; 清空你之前的配置的从库信息 然后再重启从库 start slave;
重点说明的是如果你是第一次配置主从复制集群的话一般不会出现这个问题。
四、测试
主库和从库同步完成
至此主库分离成功实现