MySQL數據庫主從(Master/Slave)同步安裝與配置

MySQL數據庫主從(Master/Slave)同步安裝與配置

MySQL的主從同步是一個很成熟的架構,優點爲:
①在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服務器壓力;
②在從主服務器進行備份,避免備份期間影響主服務器服務;
③當主服務器出現問題時,可以切換到從服務器。
所以我在項目部署和實施中經常會採用這種方案.
+ 數據庫目錄及其它
my.cnf配置文件     /etc/my.cnf
mysql數據庫位置    datadir=/var/lib/mysql
主數據庫:192.168.2.119
從數據庫:192.168.2.220
操作系統:RHEL5.x 32位
服務器類型: 虛擬機
+ mysql5.0.77 安裝:
① 配置好linux的yum服務後,直接yum -y install mysql即可
附:安裝php/mysql一條命令安裝:yum -y install httpd php mysql mysql-server php-mysql
② 啓動MySQL
service mysqld start(restart|stop)
一、設置主庫
1、修改主庫my.cnf,主要是設置個不一樣的id和logbin(#這部可依具體環境而定,壓力大的化可採用huge.cnf)
[root@localhost etc]#vi /etc/my.cnf
# 記住這部分一定要配置在[mysqld]後面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
2、啓動主庫生效
[root@localhost etc]service mysqld restart
3、登陸主庫
[root@localhost etc]mysql -u root -p
4、賦予從庫權限帳號,允許用戶在主庫上讀取日誌
mysql> grant all privileges on *.* to '用戶名'@'%' identified by '密碼'; 
5、檢查創建是否成功
select user,host from mysql.user;
6、鎖主庫表 
mysql> flush tables with read lock; 
7、顯示主庫信息
記錄File和Position,從庫設置將會用到
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 98   |              |                  | 
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
# 說明,如果執行這個步驟始終爲Empty set(0.00 sec),那說明前面的my.cnf沒配置對。
8、另開一個終端登陸220,打包主庫遷移數據(如果你使用的yum安裝,有默認數據庫並未做任何改動,則不需要進行拷貝)
目的是爲了保證兩臺服務器的mysql數據庫一致,這裏可以自行tar打包或者使用mysqldump命令備份恢復的方式進行。
二、設置從庫
1、傳輸拿到主庫包、解包
# 登陸從庫
從上一步中備份的數據庫恢復到220服務器節點上。
2、在119節點上解鎖主庫表(對應第一點設置主庫中第6步鎖主庫表的操作) 
mysql> unlock tables; 
3、在220節點上修改從庫my.cnf(位置一樣)
[root@localhost etc]vi my.cnf 
# 記住這部分一定要配置在[mysqld]後面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
[mysqld]
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
master-host=192.168.2.119
master-user=root
master-password=pfingo
4、在220節點上驗證連接主庫
[root@localhost etc]mysql -h 192.168.2.119 -u 用戶名 -p 
5、在220節點從庫上設置同步
#設置連接MASTER MASTER_LOG_FILE爲主庫的File,MASTER_LOG_POS爲主庫的Position
#注意下面第二條命令語句中的master_log_file='mysql-bin.000001', master_log_pos=98;對應爲前面在主庫中執行的show master status;結果
mysql> slave stop;
mysql> change master to master_host='192.168.2.119',master_user='root',master_password='pfingo',master_log_file='mysql-bin.000001', master_log_pos=98;
mysql> slave start;
6、啓動從庫服務
mysql> slave start;
7、進行測試
在主庫上的test庫上建立名爲myTest的表
mysql> CREATE TABLE `myTest` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` CHAR( 32 ) NOT NULL ,
`last_update` DATETIME NOT NULL ,
`number` FLOAT( 10 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;
在從表中馬上看到了效果,主從同步成功了;
爲了更進一步驗證在從庫上輸入show slave status/G;
mysql> show slave status/G;
Slave_IO_Running: Yes(網絡正常);
Slave_SQL_Running: Yes(表結構正常)
進一步驗證了以上過程的正確性。
MySQL的主從同步是一個很成熟的架構,優點爲:
①在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服務器壓力;
②在從主服務器進行備份,避免備份期間影響主服務器服務;
③當主服務器出現問題時,可以切換到從服務器。
所以我在項目部署和實施中經常會採用這種方案.
+ 數據庫目錄及其它
my.cnf配置文件     /etc/my.cnf
mysql數據庫位置    datadir=/var/lib/mysql
主數據庫:192.168.2.119
從數據庫:192.168.2.220
操作系統:RHEL5.x 32位
服務器類型: 虛擬機
+ mysql5.0.77 安裝:
① 配置好linux的yum服務後,直接yum -y install mysql即可
附:安裝php/mysql一條命令安裝:yum -y install httpd php mysql mysql-server php-mysql
② 啓動MySQL
service mysqld start(restart|stop)
一、設置主庫
1、修改主庫my.cnf,主要是設置個不一樣的id和logbin(#這部可依具體環境而定,壓力大的化可採用huge.cnf)
[root@localhost etc]#vi /etc/my.cnf
# 記住這部分一定要配置在[mysqld]後面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
2、啓動主庫生效
[root@localhost etc]service mysqld restart
3、登陸主庫
[root@localhost etc]mysql -u root -p
4、賦予從庫權限帳號,允許用戶在主庫上讀取日誌
mysql> grant all privileges on *.* to '用戶名'@'%' identified by '密碼'; 
5、檢查創建是否成功
select user,host from mysql.user;
6、鎖主庫表 
mysql> flush tables with read lock; 
7、顯示主庫信息
記錄File和Position,從庫設置將會用到
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 98   |              |                  | 
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
# 說明,如果執行這個步驟始終爲Empty set(0.00 sec),那說明前面的my.cnf沒配置對。
8、另開一個終端登陸220,打包主庫遷移數據(如果你使用的yum安裝,有默認數據庫並未做任何改動,則不需要進行拷貝)
目的是爲了保證兩臺服務器的mysql數據庫一致,這裏可以自行tar打包或者使用mysqldump命令備份恢復的方式進行。
二、設置從庫
1、傳輸拿到主庫包、解包
# 登陸從庫
從上一步中備份的數據庫恢復到220服務器節點上。
2、在119節點上解鎖主庫表(對應第一點設置主庫中第6步鎖主庫表的操作) 
mysql> unlock tables; 
3、在220節點上修改從庫my.cnf(位置一樣)
[root@localhost etc]vi my.cnf 
# 記住這部分一定要配置在[mysqld]後面,否則無法找到從節點,各個配置項的含義可自己查閱文檔
[mysqld]
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
master-host=192.168.2.119
master-user=root
master-password=pfingo
4、在220節點上驗證連接主庫
[root@localhost etc]mysql -h 192.168.2.119 -u 用戶名 -p 
5、在220節點從庫上設置同步
#設置連接MASTER MASTER_LOG_FILE爲主庫的File,MASTER_LOG_POS爲主庫的Position
#注意下面第二條命令語句中的master_log_file='mysql-bin.000001', master_log_pos=98;對應爲前面在主庫中執行的show master status;結果
mysql> slave stop;
mysql> change master to master_host='192.168.2.119',master_user='root',master_password='pfingo',master_log_file='mysql-bin.000001', master_log_pos=98;
mysql> slave start;
6、啓動從庫服務
mysql> slave start;
7、進行測試
在主庫上的test庫上建立名爲myTest的表
mysql> CREATE TABLE `myTest` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` CHAR( 32 ) NOT NULL ,
`last_update` DATETIME NOT NULL ,
`number` FLOAT( 10 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;
在從表中馬上看到了效果,主從同步成功了;
爲了更進一步驗證在從庫上輸入show slave status/G;
mysql> show slave status/G;
Slave_IO_Running: Yes(網絡正常);
Slave_SQL_Running: Yes(表結構正常)
進一步驗證了以上過程的正確性。
發佈了29 篇原創文章 · 獲贊 19 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章