MySQL雙機熱備部署

卸載系統自帶的版本。


這裏以MySQL-5.5.28-1爲版本


爲了簡單,RPM方式安裝:

rpm -ivh MySQL-server-5.5.28-1.linux2.6.x86_64.rpm

rpm -ivh MySQL-client-5.5.28-1.linux2.6.x86_64.rpm



#mysql


mysql>update mysql.user set password="chengshan" where user="root"; //


mysql>delete from mysql.user where user=''; //刪除匿名用戶


mysql>select user,host from mysql.user;


mysql>delete from mysql.user where host='127.0.0.1';


mysql>delete from mysql.user where host='localhost';


mysql>create user 'zcs'@'127.0.0.1' identified by 'chengshan';


mysql>grant all privileges on *.* to 'root'@'%' identified by 'chengshan' with grant option;


mysql>grant all privileges on *.* to 'zcs'@'%' identified by 'chengshan' with grant option;


mysql>flush privileges;


mysql>quit



登陸測試

[root@svr ~]# mysql -u root -p

Enter password: 


1.修改相關配置文件:

#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

#vi /etc/my.cnf


在[client]最後增加

default-character-set=utf8


在[mysqld]最後增加

lower_case_table_names=1 

transaction-isolation=READ-COMMITTED

event-scheduler=1

max_connections=2000


2.啓動

/etc/init.d/mysql start

#netstat -anlt


3.停止

/etc/init.d/mysql stop


4.重新啓動

/etc/init.d/mysql restart


5.設置自動啓動

/sbin/chkconfig mysql on



二兩臺服務器都裝好後,進行雙機熱備的配置(主從關係)

約定環境:兩臺服務器的主機名最好不一樣,如一個是db1(主),一個是db2(從)。

可以通過修改/etc/sysconfig/network實現

兩臺數據庫root密碼爲chengshan


1 進入主服務器

mysql –u root –p

密碼:chengshan

mysql>下輸入:show master status;  

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002 |     107 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)


如果提示爲空則需要在/etc/my.cnf 下的mysqld中添加

log-bin=mysql-bin

server-id=10


注意看裏面的參數,特別前面兩個File和Position,在從服務器(Slave)配置主從關係會有用到的。




創建同步用戶

grant replication slave on *.* to [email protected] identified by '123456';

//創建用戶user1密碼爲123456,指定IP爲從服務器可以訪問的。


flush privileges;


修改/etc/my.cnf

在[mysqld]下修改即可:

[mysqld]

server-id = 1

log-bin=mysql-bin                //其中這兩行是本來就有的,可以不用動,添加下面兩行即可

binlog-do-db = opts2         //指定需要被同步的數據庫名稱如opts2

binlog-ignore-db = mysql     //指定不需要被同步的數據庫名稱如mysql自帶的mysql或其他的數據庫,如果不指定這兩條默認全部都同步。

修改好後

service mysql restart      //重啓mysql服務,不解釋。如果成功則沒問題。


主服務器配置完畢。






2 進入從服務器

首先修改/etc/my.cnf配置

[mysqld]                    //在[mysqld]段後修改

server-id = 2               //修改1爲2

log-bin=mysql-bin           //默認配置,開啓日誌記錄,不用改

replicate-do-db = opts2        //指定需要去主服務器發起同步的數據庫名如opts2

replicate-ignore-db = mysql,information_schema,performance_schema

// 執行不需要進行同步的數據庫名


service mysql restart     //不解釋




用change mster 語句指定同步位置

mysql –u root –p

密碼:chengshan

mysql>


創建同步用戶

grant replication slave on *.* to [email protected] identified by '123456';

//創建用戶user2密碼爲123456,指定IP爲主服務器可以訪問的。其實這句話可以不用打,這句話是給互相備份用的(主-主關係),不過配上也沒事,沒有設置權限。


mysql>stop slave;          //先停步slave服務線程,這個是很重要的,如果不這樣做會造成以下操作不成功。

mysql>change master to

->master_host='192.168.0.90',

->master_user='user1',

->master_password='123456',

->master_log_file='mysql-bin.000003 ',

->master_log_pos=107;


注:master_log_file, master_log_pos由主服務器(Master)查出的狀態值中確定。也就是剛剛叫注意的。master_log_file對應File, master_log_pos對應Position。


mysqlbinlog mysql-bin.000003 > 0.txt

回車後,如成功會有OK提示,如果不成功則要重新設置slave。指令如下


mysql>stop slave;


mysql>reset slave;



之後停止slave線程重新開始。成功後,則可以開啓slave線程了。



flush privileges;



mysql>start slave;     //重新啓動


mysql>show slave status\G;   //查看從服務器狀態



# service mysql restart   //不解釋


至此從服務器設置完成。

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