這里就詳解,請度娘。
二、配置MySQL主服務器(10.241.226.110)
mysql -uroot -p #進入MySQL控制臺
create database testdb; #建立數據庫testdb
#授權用戶mysqlcopy只能從10.241.226.111這個IP訪問主服務器10.241.226.110上面的數據庫,并且只具有數據庫備份的權限
grant replication slave on *.* to 'mysqlcopy'@'10.241.226.111' identified by '123456' with grant option;
三、把MySQL主服務器10.241.226.110中的數據庫testdb導入到MySQL從服務器10.241.226.111中
1、導出數據庫testdb
mysqldump -u root -p testdb> /home/testdbbak.sql
備注:在導出之前可以先進入MySQL控制臺執行下面命令
flush tables with read lock; #數據庫只讀鎖定命令,防止導出數據庫的時候有數據寫入
unlock tables; #解除鎖定
2、導入數據庫到MySQL從服務器
mysql -u root -p #進入從服務器MySQL控制臺
create databasetestdb; #創建數據庫
usetestdb #進入數據庫
source /home/testdbbak.sql #導入備份文件到數據庫
mysql -u mysqlcopy-h10.241.226.110 -p #測試在從服務器上登錄到主服務器
四、配置MySQL主服務器的my.cnf文件
1、vim /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容
log_bin=mysql-bin #啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。 binlog-do-db=testdb #需要同步的數據庫名,如果有多個數據庫,可重復此參數,每個數據庫一行 binlog-ignore-db=mysql #不同步mysql系統數據庫 server_id = 1 #設置服務器id,為1表示主服務器,注意:如果原來的配置文件中已經有這一行,就不用再添加了。 socket =/var/lib/mysql/mysql.sock character-set-server=utf8
注意:這里記住File的值:mysql-bin.000001和Position的值:120,后面會用到。
五、配置MySQL從服務器的my.cnf文件
1、vi /etc/my.cnf #編輯配置文件,在[mysqld]部分添加下面內容
log_bin=mysql-bin #啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。 replicate-do-db=testdb replicate-ignore-db=mysql read_only=1 server_id = 2 #配置文件中已經有一行server-id=1,修改其值為2,表示為從數據庫 socket = /var/lib/mysql/mysql.sock character-set-server=utf8
2、service mysqld restart #重啟MySQL
3、mysql -u root -p #進入MySQL控制臺
4、slave stop; #停止slave同步進程
5、change master to master_host='10.241.226.110',master_user='mysqlcopy',master_password='123456',master_log_file='mysql-bin.000001,master_log_pos=120; #執行同步語句
6、slave start; #開啟slave同步進程
7、SHOW SLAVE STATUS\G #查看slave同步信息,部分內容如下:
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.241.226.111 Master_User: mysqlcopy Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 377 Relay_Log_File: localhost-relay-bin.000003 Relay_Log_Pos: 540 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: DB_CLOUDCORE Replicate_Ignore_DB: mysql Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 377 Relay_Log_Space: 717 Until_Condition: None Until_Log_File:
以上這兩個參數的值為Yes,即說明配置成功!
六、測試MySQL主從服務器雙機熱備是否成功
1、進入MySQL主服務器
mysql -u root -p #進入主服務器MySQL控制臺
use testdb; #進入數據庫
CREATE TABLE test ( id int not null); #創建test表
2、進入MySQL從服務器
mysql -u root -p #進入MySQL控制臺
usetestdb; #進入數據庫
show tables;
會看到有一個新建的表test,表示數據庫同步成功
問題:
1、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解:由于mysql 默認的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系統總是去/tmp/mysql.sock查找,所以會報錯
為mysql.sock增加軟連接(相當于windows中的快捷方式)。
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com