Mysql 之 主从复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 之 主从复制相关的知识,希望对你有一定的参考价值。
一、数据库主从复制基本要求:
1、操作系统版本一致(建议)。
2、数据库版本一致(建议)。
3、配置文件参数一致(是指一些性能参数)。
二、网络拓扑
三、主数据库配置文件
[mysqld]
user = mysql
basedir = /app/mysql
datadir = /app/mysql/data
port=3306
server-id = 10 #要与从库区别出来
log-bin = mysql-bin #必须启用binlog日志功能,主从基于日志同步
binlog_format = mixed #binlog日志格式
expire_logs_days = 7
#slave_skip_errors=1028
四、在主库上授权从库用户进行复制
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> grant replication slave on *.* to ‘mysync‘@‘10.3.150.199‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.04 sec)
五、把主库的TEST数据库备份下来
[[email protected] ~]# mysqldump -uroot -F -B test --single-transaction --master-data --triggers --routines --events > test.sql
#--master-data 默认参数值是1,mysqldump出来的文件就会包括创:建数据库语句和CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置
[[email protected] ~]# ll
总用量 12
-rw-------. 1 root root 959 6月 17 15:20 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 8月 13 06:57 backup
-rw-r--r-- 1 root root 2254 8月 26 02:21 test.sql #数据库备份文件
[[email protected] ~]# scp test.sql [email protected]:/root/ #把此文件复制到从库里
六、修改从库的配置文件
[mysqld]
user = mysql
basedir = /app/mysql
datadir = /app/mysql/data
port=3306
server-id = 22 #从库必须要与主库不一致
七、在从库上创建上设置同步帐户
mysql> change master to
-> master_host=‘10.3.150.198‘,
-> master_user=‘mysync‘,
-> master_password=‘123456‘;
Query OK, 0 rows affected, 2 warnings (0.08 sec)
八、导入主库备份过来的test.sql文件
mysql> source /root/test.sql;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.00 sec)
九、启动主从同步
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show slave statusG;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.3.150.198
Master_User: mysync
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 154
Relay_Log_File: web02-relay-bin.000007
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes #代表同步成功
Slave_SQL_Running: Yes #代表同步成功
九、关于主从同步的的一些异常处理方法
1、提示错误 :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."
主要原因:主从服务器都是克隆出来的,导致两个MYSQL的auto.cnf文件里的server-uuid值完全相同。
2、提示错误:
以上是关于Mysql 之 主从复制的主要内容,如果未能解决你的问题,请参考以下文章