linux下指定数据库服务器主从同步的配置实例,有需要的朋友可以参考下


一、 概念: ① 数据库同步  (主从同步 --- 主数据库写的同时 往从服务器写数据)
② 数据库同步  (主主同步 --- 两台数据库服务器互相写数据)

二、 举例数据库服务器(A) 主数据库   IP:192.168.1.134
数据库服务器(B) 主数据库   IP:192.168.1.138
两台服务器同步的用户名为: bravedu    密码: brave123 

一、主数据库操作设置(A):① 创建同步用户名 允许连接的 用户IP地址  (非本机IP)



复制代码代码如下:



grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123'; 
  
 flush privileges;



② 更改mysql配置文件 


复制代码代码如下:



[mysqld]   
  
 server-id = 1   
  
 log-bin=/www/mysql/binlog/binlog (路径要根据自己的安装设置) 
  
 binlog-do-db = dbname (要同步的数据库名)  
  
 binlog-ignore-db=mysql


重启mysql服务器


③ 查看主数据库同步状态 



复制代码代码如下:


mysql>flush tables with read lock;   
  
 mysql>show master status\G 
  
 *************************** 1. row *************************** 
  
   File: mysql-bin.000001    (这里注意 设置从服务器的时候要用) 
  
   Position: 106   (这里注意设置从服务器的时候要用) 
  
   Binlog_Do_DB: dbname 
  
   Binlog_Ignore_DB: mysql 
  
   1 row in set (0.00 sec) 
  

 mysql>unlock tables; 
  
 *******主服务器到目前位置设置完毕***********


二、从数据库操作设置(B):

① 创建同步用户名



复制代码代码如下:



grant replication slave on *.* to 'bravedu'@'192.168.1.%' identified by 'brave123'; 
  
 flush privileges;

② 更改mysql配置文件    


复制代码代码如下:



[mysqld]   
  
 server-id = 2   
  
 log-bin=/www/mysql/binlog/binlog (路径要根据自己的安装设置) 
  
 binlog-do-db = dbname (要同步的数据库名)  
  
 binlog-ignore-db= mysql,information_schema


拷贝数据

新安装的master和slave有相同的数据)

关停Master服务器,将Master中的数据拷贝到B服务器中,使得Master和slave中的数据同步,并且确保在全部设置操作结束前,禁止在Master和slave服务器中进行写操作,使得两数据库中的数据一定要相同!

重启mysql服务器

/usr/local/mysql/bin/mysqladmin -u root -p shutdown 
 
 /usr/local/mysql/bin/safe_mysqld &

③  指定主从数据库服务器同步指令
注: IP为主服务器的IP,用户名,密码,log_file,log_post 都和主服务器统一
可能这块操作 需要先  解除锁表、停止数据库状态、在运行后 在启动状态 



复制代码代码如下:



mysql > stop  slave; 
  
 mysql > change master to master_host='192.168.1.134', master_user='bravedu', master_password='brave123', master_log_file='mysql-bin.000001', master_log_pos=106;  
  
 mysql > start slave; 
  
 mysql > unlock tables;


④ 查看主数据库同步状态  会出来很多信息 但是主要看这两个状态就行了 如果都是 yes 就可以了


复制代码代码如下:



mysql>show slave status\G; 
  
 Slave_IO_Running: Yes 
  
 Slave_SQL_Running: Yes


至此,主从数据库同步配置完成。