配置mysql為主主複製步驟

來源:互聯網
上載者:User

標籤: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/)

$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 [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兩路上啟動複製

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)中的步驟。

配置mysql為主主複製步驟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.