MySQL主从同步设置和同步错误处理

注意:
1、两台服务器数据库版本应一致,如果不一致,从服务器的版本要高于主服务器的版本。
2、MySQL进行实时数据同步,本质上是将mysql动作同步到Slave服务器,而不是对实质的数据进行同步。所以同步开始前,两端的数据要保持一致。
 
Master服务器:192.168.0.1
Slave服务器:192.168.0.2
 
===  Master停止运行时,Mysql同步配置===
 
一、主服务器设置:
 
1、修改/etc/my.cnf 
在[mysqld]区段内加入参数 
server-id=1
log-bin 
sql-bin-update-same
 
2、为Slave服务器创建连接账户,用于同步
  
  
  
  
  1. mysql>GRANT FILE ON *.* TO [email protected] IDENTIFIED BY '1234'
  2. mysql>grant all privileges on *.* to 'wan'@'%' identified by 'xxx'
  3. mysql>FLUSH PRIVILEGES
3、重启mysql服务:service mysqld restart
此时因为有加入log-bin参数,因此开始有index产生了,在/var/lib/mysql目录下有.index档案纪录数据库的异动log.
 
 
二、Slave服务器设置:
 
1、修改/etc/my.cnf 
在[mysqld]区段加入 
 
   
   
   
   
  1. master-host=192.168.0.1  
  2. master-user=backup  
  3. master-password=1234  
  4. master-port=3306  
  5. server-id=2  
  6. master-connect-retry=60 预设重试间隔60秒  
  7. replicate-do-db=vbb 告诉slave只做vbb数据库的更新 
  8. replicate-ignore-db=mysql #不同步的数据库 
  9. replicate-ignore-table=vbb.users #不同步vbb数据库的users表 
  10.  
2、重启Slave服务器mysql服务
 
三、Slave服务器从主服务器读取数据,并开启同步
 
mysql>FLUSH TABLES WITH READ LOCK; #首先执行这个,对主服务器加锁
mysql>LOAD DATA FROM MASTER  #语句的话,必须授予全局的 FILE 和 SELECT 权限,仅针对MyISAM引擎,对InnoDB表无用。
 
如果数据是InnoDB的,需要在服务器上将表结构和数据分开导出,然后拷贝至Slave服务器。
 
导出整个数据库结构和数据:mysqldump -u用户名 -p密码 -h主机 database > filename.sql
导出某个表的数据和结构:mysqldump -u用户名 -p密码 -h主机 database table > filename.sql
只导出数据库中表的数据:mysqldump -u用户名 -p密码 -h主机 -T database table > filename.sql
只导出数据库中表的结构:mysqldump -u用户名 -p密码 -h主机 -d database table > filename.sql
 
4、确保两端数据一致后,开启同步
mysql>slave start;
 
5、查看Slave服务器同步信息
 
mysql>show slave status\G;
 
可以看到,Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave 的 I/O 和 SQL 线程都在正常运行。
 
6、对Master服务器释放锁
 
mysql>UNLOCK TABLES;
 
 
=== Master还在运行中,如何在不停止它的情况下配置Slave ===
 
注:主从服务器的配置同上。
 
1、首先在Master服务器查看同步日志信息
 
mysql>show master status;
 
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000054 | 680 |                     | mysql |
+------------------+----------+--------------+------------------+
 
可以看到日志文件是:mysql-bin.000054,同步点是680
 
 
2、在Slave服务器配置同步
   
   
   
   
  1. mysql>slave stop; # mysql默认同步开始 
  2. mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='backup',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000054',MASTER_PORT='3306',MASTER_LOG_POS=690;  #配置同步点 
  3. mysql>slave start; #开启同步 
 
3、查看同步信息
mysql>show slave status\G;
 
可以看到,Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave 的 I/O 和 SQL 线程都在正常运行。
 
4、配置完成

你可能感兴趣的:(职场,休闲,mysql同步配置)