MySQL基於binlog主從複製配置
Master-Slave 搭建環境:
Master:
Os: rhel-server-6.3-x86_64
Mysql: MySQL -5.5.35-1
虛擬機器:Virtual BOX
Ip:192.168.56.102
Slave:
Os: rhel-server-6.3-x86_64
Mysql: MySQL -5.5.35-1
虛擬機器:Virtual BOX
Ip:192.168.56.103
總體步驟:
1、 修改Master配置檔案(my.cnf)
2、 在Master上建立一個有複製許可權的使用者
3、 複製Master上的資料庫到Slave
4、 修改Slave配置檔案(my.cnf)
5、 Slave初始化複製
6、 測試
7、 常見問題
1、 修改Master配置檔案(my.cnf)
[mysqld]
server-id=1 //必須是伺服器唯一id,預設是0,
log-bin=mysql-bin //必須啟用二進位制日誌
replicate-do-db=dba
[mysqld]
server-id=1
log-bin=/var/lib/mysql/master-bin
#log-bin-index=/var/lib/mysql/master-bin.index
replicate-do-db=abc
2、 在Master上建立一個有複製許可權的使用者
mysql>create user abc;
mysql>grant replication slave on *.* to abc identified by ‘abc';
3、 複製Master上的資料庫到Slave
mysql>flush tables with read lock;
mysql> show master status
-> ;
+-----------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| ogg1-bin.000003 | 107 | | |
+-----------------+----------+--------------+------------------+1 row in set (0.00 sec)
mysql>quit
[root@ogg /]# /usr/bin/mysqldump abc -uroot -proot --opt | mysql abc -uroot -proot -h 192.168.56.103
MySQL 5.6 不允許使用明密碼檔案遠端
[root@guo ~]# /usr/bin/mysqldump abc -uroot -p --opt | mysql abc -uroot -p -h 192.168.56.103
489487.png
需要在slave中授權:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.103' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>unlock tables;
4、修改Slave配置檔案(my.cnf)
[mysqld]
server-id=2 //必須是伺服器唯一id,預設是0,
log-bin=mysql-bin //必須啟用二進位制日誌
replicate-do-db=zbdba
[mysqld]
server-id=11
relay-log=/var/lib/mysql/slave-relay-bin
#relay-log-index=/var/lib/mysql/slave-relay-bin.index
#port=3316
#datadir=/var/lib/mysql/data
replicate-do-db=abc
5、 Slave初始化複製
mysql>slave stop;
mysql>CHANGE MASTER TO MASTER_HOST='192.168.56.12',
MASTER_USER='zbdba',MASTER_PASSWORD='123456',MASTER_LOG_FILE='ogg1-bin.000003',MASTER_LOG_POS=107;
CHANGE MASTER TO MASTER_HOST='192.168.56.102',
MASTER_PORT=3306,MASTER_USER='abc',
MASTER_PASSWORD='abc';
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.12
Master_User: zbdba
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: ogg1-bin.000003
Read_Master_Log_Pos: 107
Relay_Log_File: ogg2-relay-bin.000002
Relay_Log_Pos: 252
Relay_Master_Log_File: ogg1-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: abc
138216.png
6、 測試
master:
mysql> show tables;
+-----------------+
| Tables_in_zbdba |
+-----------------+
| guestbook |
| test |
| test1 |
+-----------------+
create table test2 select * from test1;
mysql> show tables;
+-----------------+
| Tables_in_zbdba |
+-----------------+
| guestbook |
| test |
| test1 |
| test2 |
+-----------------+
salve:
mysql> show tables;
+-----------------+
| Tables_in_zbdba |
+-----------------+
| guestbook |
| test |
| test1 |
| test2 |
+-----------------+
4 rows in set (0.00 sec)
如果需要配置相互主從的關係,只需要在slave資料庫上面建立對應使用者,原master上面做一下初始化就行了。
7、 常見問題
/etc下面沒有對應的my.cnf檔案
解決方法:
如果mysql使用rpm包安裝的,/etc下沒有對應的my.cnf檔案,這時候只需要複製一個/usr/share/mysql目錄下的.cnf檔案到/etc目錄,並改名為my.cnf即可。
Server-id引數無法修改
解決方法:
看my.cnf中是否存在相同的server-id=1
MySQL主備出現這個錯誤: ERROR 1201 (HY000):
解決方法:
mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> reset slave;
Query OK, 0 rows affected,(0.00 sec)
ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server
解決方法:
如果你想允許使用者myuser從ip為192.168.1.103的主機連線到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.103' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24742969/viewspace-1797042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql5.6主從複製-基於binlogMySql
- MySQL 主從複製搭建,基於日誌(binlog)MySql
- mysql複製--主從複製配置MySql
- MySql 主從複製配置MySql
- MySQL主從複製配置MySql
- Mysql 基於GTID主從複製MySql
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- mysql 基於日誌的主從複製MySql
- MYSQL主從複製配置(整理)MySql
- mysql之 MySQL 主從基於position複製原理概述MySql
- MYSQL主從複製製作配置方案MySql
- MySQL 5.7 基於GTID搭建主從複製MySql
- MySQL 5.7基於GTID的主從複製MySql
- mysql for linux 配置主從複製MySqlLinux
- mysql主從複製原理及配置MySql
- mysql之 MySQL 主從基於 GTID 複製原理概述MySql
- MySQL主從複製與主主複製MySql
- 基於配置檔案的redis的主從複製Redis
- 基於 Docker 的 MySQL 主從複製搭建(真正弄懂)DockerMySql
- MySQL 主從複製安裝部署配置MySql
- Docker 教程十五配置MySQL 主從複製DockerMySql
- 簡單配置mysql的主從複製MySql
- Linux下配置MySQL主從複製LinuxMySql
- MySQL 主從複製的原理和配置MySql
- MySQL的主從複製與MySQL的主主複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- MySQL主從複製MySql
- 主從複製、雙主複製及半同步複製、以及基於SSL的複製
- mysql之 mysql 5.6不停機主從搭建(一主一從基於GTID複製)MySql
- Linux下MySQL主從複製(Binlog)的部署過程LinuxMySql
- mysql主主複製(雙主複製)配置步驟MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- MySQL主從複製配置心跳功能介紹MySql
- mysql5.6.xGTID主從複製配置MySql
- mysql之 mysql 5.6不停機主從搭建(一主一從基於日誌點複製)MySql