mysql 主從複製

此文章來源於我的另一個博客轉載過來。


數據庫主從互備

實驗環境:

centos 6.3 64bit

mysql版本:mysql-5.5.28

server1=192.168.1.38

server2=192.168.1.39

1.38

1、初始化數據庫

#service mysqld stop

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var

#service mysqld start         \\重新啓動mysld

2、修改root密碼

#mysql

mysql>use mysql;

mysql>update user set password=password('root') where user='root';                  //把root密碼修改爲root

mysql>flush privileges;

mysql>exit

3、創建數據同步用戶,並授權只允許master-slave IP登陸

mysql>use mysql;

mysql>insert into mysql.user (Host,User,Password) values ('localhost','repluser',password('repluser')); 

mysql>grant all privileges on *.* to 'repluser'@'192.168.1.39' identified by 'repluser';

mysql>flush privileges;

4、創建普通測試用戶soul,允許在任何IP登陸訪問

mysql>use mysql;

mysql>insert into mysql.user (Host,User,Password) values ('%',‘soul',password('soul')); 

mysql>grant all privileges on *.* to 'soul'@'%' identified by 'soul';

mysql>flush privileges;

5、導入數據庫mobiledb

#mysql -uroot -p

mysql>use mysql;

mysql>create database mobiledb;            //先創建數據庫

mysql>quit

#mysql -uroot -p mobiledb < /home/databackup/mobiledb.sql

或者在控制界面source導入

#mysql -uroot -p

mysql>source /home/databackup/mobiledb.sql;

1.39

6、數據庫初始化

#service mysqld stop

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var

#service mysqld start         \\重新啓動mysld

7、把1.38數據庫var目錄拷貝到1.39代替掉原來的var

1.38#server mysqld stop

1.39#server mysqld stop

1.38#scp -P43998 -r /usr/local/mysql/var [email protected]:/usr/local/mysql/

8、重啓兩套服務器的mysqld

1.38#service mysqld start

1.39#chown mysql.mysql /usr/local/mysql/var -R        \\務必要對數據存放目錄的屬主改爲mysql放有權限

1.39#service mysqld start

9、在1.39上創建同步用戶

mysql>use mysql;

mysql>insert into mysql.user (Host,User,Password) values ('localhost','repluser',password('repluser')); 

mysql>grant all privileges on *.* to 'repluser'@'192.168.1.38' identified by 'repluser';

mysql>flush privileges;

10、先在1.39做單向同步1.38的數據

a:查看主1.38mysql的master

1.38#mysql -uroot -p

mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000011
        Position: 676
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.01 sec)

ERROR:
No query specified

1.39#mysql -uroot -p

mysql> change master to MASTER_HOST='192.168.1.38',
    -> MASTER_USER='repluser',
    -> MASTER_PASSWORD='repluser',
    -> Master_Port=3307,
    -> Master_Log_File='mysql-bin.000011',
    -> Master_Log_Pos=676;
#start slave;                                                                              \\啓動同步

查看結果

mysq>show slave status\G;

wKioL1SyV4vQtctlAANS4xDbLtk493.jpgspacer.gif

目前結果:1.39能單步同步1.38的數據

11、在1.38上做同步1.39上的數據

b:查看1.39mysql master 的日誌

1.39#mysql -uroot -p

mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000014
        Position: 338
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.01 sec)

ERROR:
No query specified

1.38#mysql -uroot -p

mysql> change master to MASTER_HOST='192.168.1.39',
    -> MASTER_USER='repluser',
    -> MASTER_PASSWORD='repluser',
    -> Master_Port=3307,
    -> Master_Log_File='mysql-bin.000014',
    -> Master_Log_Pos=338;
#start slave;                                                                              \\啓動同步

查看結果:

spacer.gifwKiom1SyVxPBptaNAANlZ44nBr0499.jpg

測試結果:1.38  1.39能實時兩邊同步。

注意:檢查1.38  1.39 的所有my.cnf配置文件 server-id 不能相同 server-id必須唯一值


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章