linux下mysql主从复制搭建


 

目标:搭建两台MySQL服务器,一台做为主服务器,一台做为从服务器,实现主从复制html

环境:
  主数据库: 192.168.1.1
  从数据库: 192.168.1.2mysql

  mysql安装可参考:http://www.javashuo.com/article/p-zbbcomgp-be.htmlsql

配置步骤:数据库

一、保证两个数据库中的库和数据是一致的;服务器

二、在主数据中建立一个同步帐号(可不建立使用现有的),若是仅仅为了主从复制建立帐号,只须要授予REPLICATION SLAVE权限。
1)、建立一个帐号,帐号:master 密码: 123456网络

CREATE USER 'master'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

三、配置主数据库
1)要主数据库,你必需要启用二进制日志(binary logging),而且建立一个惟一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变动记录到从服务器依赖的是二进制日志,若是没启用二进制日志,复制操做不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置惟一的Server ID,取值范围是1到(232)−1,你本身决定取值。
4)配置二进制日志和Server ID,你须要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”做为前缀,Server ID配置为1,以下:spa

[mysqld]
log-bin=mysql-bin
server-id=1
#网络上还有以下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名 
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=1
sync_binlog=1

四、重启mysql.net

五、查看主服务器状态:日志

cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> show master status;

注意:记录好File和Position,后面要用
code

六、配置从数据库:
1)从服务器,同理,要分配一个惟一的Server ID,须要关闭MySQL,修改好后再重启,以下:

[mysqld]
server-id=2
#能够指定要复制的库
replicate-do-db=test-xxx #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db=mysql #忽略的库
#网上还有下面配置
#relay-log=mysqld-relay-bin

2)配置链接主服务器的信息:
进入sqlplus:

cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.1',
-> MASTER_USER='master',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3309,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=154;
mysql> start slave;

3)查看状态

mysql> show slave status \G;
       Slave_IO_State: Waiting for master to send event
          Master_Host: 192.168.1.1
          Master_User: master
          Master_Port: 3309
        Connect_Retry: 60
      Master_Log_File: mysql-bin.000001
  Read_Master_Log_Pos: 2950
       Relay_Log_File: localhost-relay-bin.000007
        Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
     Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
      Replicate_Do_DB: test-xxx
  Replicate_Ignore_DB: mysql
        ...
Seconds_Behind_Master: 0 #表示已同步
        ...

4)若 Slave_SQL_Running: no 请重复执行如下内容,直至yes:

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

 

参考的资料:

  一、https://blog.csdn.net/envon123/article/details/76615059  二、https://blog.csdn.net/xiaoxinla/article/details/7679578

相关文章
相关标签/搜索