mysql版本:mysql-5.6.24-solaris10-sparc-64bit.tar
操作系統:solaris 11g u10
操作用戶:使用非root進行操作安裝,a路服務器ip地址為192.168.1.1 b路ip地址為192.168.1.2(應改為實際ip地址)
1,安裝mysql數據庫
1)??????? 在預定義目錄下創建mysql數據庫目錄(我是用的目錄為/usr/db/)
$mkdir mysql |
2)??????? 在mysql目錄下創建data目錄
$mkdir –p mysql_3306/data |
3)??????? 在mysql目錄下解壓mysql文件
$tar –xvf mysql-5.6.24-solaris10-sparc-64bit.tar $mv mysql-5.6.24-solaris10-sparc-64bit mysql |
4)??????? 初始化data目錄
$./mysql/scripts/mysql_install_db --basedir=/usr/sjes/mysql/mysql --datadir=/usr/sjes/mysql/mysql_3306/data/ --user=mor |
5)??????? 配置數據庫啟動文件
$vi /mysql/my.cnf |
?
A路mysql配置內容下:(user 改為對應實際運行用戶)
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES socket=/tmp/mysql.sock pid-file=/usr/db/mysql_3306/mysql.pid datadir=/usr/db/mysql_3306/data basedir=/usr/db/mysql/ user=test character-set-server=utf8 wait_timeout=31536000 interactive_timeout=31536000 server_id=1 |
B路mysql配置內容如下:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES socket=/tmp/mysql.sock pid-file=/usr/db/mysql_3306/mysql.pid datadir=/usr/db/mysql_3306/data basedir=/usr/db/mysql/ user=test character-set-server=utf8 wait_timeout=31536000 interactive_timeout=31536000 server_id=2 |
?
6)??????? 啟動mysql數據庫,并更改root默認密碼
$ ./bin/mysqld_safe --defaults-file=/usr/db/mysql/my.cnf --user=test 2>&1 & $mysql –u root –p(回車進入,不用輸入密碼) mysql>use mysql; mysql> update user set password=password('123456') where user='root'; mysql>flush privileges; |
7)??????? 在兩路個數據庫中創建數據庫實例(分別在兩個數據庫中創建要進行同步的數據庫)
mysql> create database test1 default character set 'utf8'; mysql> create database test2 default character set 'utf8'; mysql> create database test3 default character set 'utf8'; |
?
以上步驟為創建 a/b兩路數據庫的具體過程,下面具體配置主主復制步驟:
2 配置主主主主復制
1)??????? 停止mysql數據庫
$./bin/mysqladmin shutdown –p 3306 –S /tmp/mysql.sock |
2)??????? 分別編輯a,b兩路的mysql的配置文件
$vi my.cnf |
A路my.cnf配置文件新增內容如下:(auto-increment-increment = 2?auto-increment-offset = 1?為防止在兩路數據庫添加數據造成自增字段的沖突,一般情況下只在一路進行添加、更新操作,另一路僅做作為讀)
##################replication config####################### log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 1 replicate-do-db = test1 replicate-do-db = test2 replicate-do-db = test3 binlog-ignore-db = mysql binlog-ignore-db = information_schema slave-skip-errors=all log-slave-updates symbolic-links=0 skip-name-resolve |
B路my.cnf配置文件新增內容如下:
##################replication config####################### log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 2 replicate-do-db = test1 replicate-do-db = test2 replicate-do-db = test3 binlog-ignore-db = mysql binlog-ignore-db = information_schema slave-skip-errors=all log-slave-updates symbolic-links=0 skip-name-resolve |
3)??????? 啟動mysql數據庫
$./bin/mysqld_safe --defaults-file=/usr/db/mysql/my.cnf --user=test 2>&1 & |
4)??????? 進入數據庫并相互授權
???? A路執行如下命令
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY ‘123456’; mysql>flush privileges; |
? B路執行如下命令
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.1' IDENTIFIED BY ‘123456’; mysql>flush privileges; |
5)??????? 查看授權是否成功
mysql> show grants for root@'192.168.1.1'; |
????????
6)??????? 互告bin-log信息
???? A路執行如下命令:
mysql> show master status; |
?
B路執行如下命令:
mysql> show master status; |
?
?
???? A路執行如下命令
mysql> change master to master_host='192.168.1.2',master_user='root',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=2626; |
? B路執行如下命令
mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=3625; |
7)??????? 在a,b兩路上啟動復制
mysql>start slave; |
?
8)??????? 在a,b兩路上查看復制狀態
???? A路復制狀態:
mysql> show slave status\G |
?
?
B路復制狀態
?
?
Slave_IO_Running: Yes
Slave_SQL_Running: Yes兩個值均為yes則表示復制鏈接正常。
9)??????? 測試復制
在a路數據庫中執行如下命令:?
mysql>use test; mysql> CREATE TABLE `admin_info` ( `username` varchar(32) NOT NULL, `password` varchar(32) DEFAULT NULL, PRIMARY KEY (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; mysql>show tables; |
在b路數據庫中查看表結構是否同步;
在b路數據庫中執行如下命令:
mysql>INSERT INTO `admin_info` VALUES ('admin','system','25d55ad283aa400af464c76d713c07ad'); |
在a路數據庫中查看記錄是否同步。
?
以上為進行mysql配置主主復制的全過程,當兩邊復制出現問題時,許重新執行2-(6)中的步驟。