由于沒(méi)有硬件環(huán)境,于是在虛擬機的linux里編譯安裝了兩個(gè)mysql,一個(gè)作為master一個(gè)作為slave,分別安裝在/home/jhw/mysql和/home/jhw/mysql2,兩個(gè)mysql默認同一個(gè)端口3306是不可以的,所以修改mysql2中的配置文件my.cnf,把port改成3307(還要注意socket的路徑是否是當前mysql的安裝路徑,要一致)。如果在編譯時(shí)沒(méi)有指定datadir,還要在my.cnf中加入“datadir=/home/jhw/mysql2/data“,當然data目錄需要mkdir自己建。
修改好配置文件后,測試兩個(gè)mysql能不能啟動(dòng),分別到bin目錄下去執行 ./mysqld_safe & 命令,再用netstat -nltp查看3306和3307端口是否起來(lái),啟動(dòng)沒(méi)問(wèn)題后登錄到mysql中,這期間我把mysql的密碼忘了,網(wǎng)上搜后,可以這樣做,停止mysql服務(wù),用mysqld_safe --skip-grant-tables &命令啟動(dòng)mysql ,再用空密碼方式登陸mysql -uroot ,在mysql>里就可以修改密碼了,使用命令 mysql> update mysql.user set password=PASSWORD('新密碼') where User='root'; mysql> flush privileges; mysql> quit 。重新啟動(dòng)linux后就可以了。
接下來(lái)就是配置主從了(這里把mysql作為主庫,mysql2作為從庫),首先在master上添加slave訪(fǎng)問(wèn)主機mysql的用戶(hù),登陸主庫mysql,執行下面兩條授權命令:
mysql> GRANT FILE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密碼’;
mysql> GRANT REPLICATION SLAVE ON *.* TO jhw@192.168.1.103 IDENTIFIED BY ‘密碼';
其次,把要同步的數據庫文件copy到叢庫的data文件夾下,這里我把數據庫名叫‘sg’的庫文件copy到了叢庫中。
然后,修改主庫的配置文件,打開(kāi)my.cnf,設置加入以下參數
log-bin= mysql-bin #打開(kāi)logbin選項以能寫(xiě)到slave的 I/O線(xiàn)程;
server-id=1 #表示是本機的序號為1,一般來(lái)講就是master的意思.
binlog-do-db= sg #表示同步aa數據庫;
重啟主庫mysql。
再修改叢庫配置文件,打開(kāi)my.cnf, 找到[mysqld] 至少保證具有以下參數
server-id=2 #本機序號,表示為從機
master-connect-retry=60 #每60秒同步一次
replicate-do-db=sg #被同步的數據庫
log-slave-updates #暫時(shí)不知什么作用
master-host =192.168.1.103 #master 的IP地址
master-user=jhw # 用來(lái)訪(fǎng)問(wèn)master的mysql用戶(hù)
master-port =3306 #master中的mysqld的port
保存重啟。
這時(shí)返回主機mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000064 | 246 | sg | |
+------------------+----------+--------------+------------------+
記住,file和position兩個(gè)值。返回叢庫執行
mysql>change master to MASTER_HOST = '192.168.1.103',master_user='jhw',master_password='',master_port='3306',master_log_file='mysql-bin.000064 ',master_log_pos='246';
到這里主從搭建完畢,可以返回主庫測試,到mysql>中,執行insert插入數據,再返回叢庫mysql >start slave;
mysql>show slave status \G;
同步成功,感謝孫哥指導。
聯(lián)系客服