標籤:grants 64bit 測試 更新 config cin width 運行 不用
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/)
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) 設定資料庫開機檔案
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的設定檔
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 [email protected]‘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兩路上啟動複製
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)中的步驟。
配置mysql為主主複製步驟