mysql修改主从复制id_mysql主从复制设置
三、mysql復(fù)制
master和每個(gè)slave是通過unique ID來區(qū)分的(server-id選項(xiàng)),而且每個(gè)slave需要配置好master的主機(jī)名,日志文件名,和日志位置
這些可以通過在slave會(huì)話中使用命令CHANGE MASTER TO ,存儲(chǔ)在slave的master.info文件中
--begin
1.在master上啟用二進(jìn)制日志,并且指定唯一的server ID,復(fù)制服務(wù)器群必須使用唯一的server ID來標(biāo)識(shí),在1~2^32 -1
為了innodb事務(wù)處理的最大程度的一致性、持久性,需在master配置innodb_flush_log_at_trx_commit=1和sync_binlog=1
master上不應(yīng)該開啟skip-networking選項(xiàng),開啟的話slave將沒法與master通信
2.修改slave配置的server-id,該id不能與master沖突,設(shè)置之后需要重啟,如果設(shè)置多個(gè)slave則每一個(gè)server-id必須唯一
3.創(chuàng)建擁有REPLICATION SLAVE權(quán)限的帳戶給slave復(fù)制用
create user 'rep102'@'192.168.1.%' identified by '123456';
grant replication slave on *.* to 'rep102'@'192.168.1.%'; //ip為通配符確定的
4.指定slave從某個(gè)節(jié)點(diǎn)開始復(fù)制
在一個(gè)master會(huì)話中刷新所有表和堵塞的寫操作:FLUSH TABLES WITH READ LOCK;
在另一個(gè)master會(huì)話中,使用SHOW MASTER STATUS來看當(dāng)前的binlog文件名及位置,file 和 position mysql-bin.000046 344
1)使用mysqldump為當(dāng)前master創(chuàng)建快照
先在一個(gè)會(huì)話中使用 :FLUSH TABLES WITH READ LOCK;
再在另一個(gè)會(huì)話中dump:mysqldump --all-databases --lock-all-tables >dbdump.db
再解鎖: UNLOCK TABLES;
2)使用冷備份:copy文件
一致性最高時(shí)需要shutdown
mysqladmin shutdown
tar cf /tmp/db.tar ./data
rsync --recursive ./data /tmp/dbdata
restart
5.設(shè)置master-slave:
1)新的master-slave,沒有任何數(shù)據(jù)
拿到binlog文件和位置后,執(zhí)行CHANGE MASTER TO
2)在現(xiàn)在數(shù)據(jù)基礎(chǔ)上設(shè)置主從
在master創(chuàng)建帳號(hào)給從庫使用
配置主庫server-id
創(chuàng)建主庫快照
得到主庫的binlog位置
更新從庫配置
為從庫加載數(shù)據(jù):mysqldump的(以--skip-slave-start參數(shù)啟動(dòng),導(dǎo)入數(shù)據(jù)mysql < db.dump),冷備的(tar xvf dump.tar,使用--skip-slave-start啟動(dòng))
使用主庫的binlog位置配置從庫,使用正確的帳號(hào)
開啟slave進(jìn)程
當(dāng)slave開始復(fù)制時(shí)可在數(shù)據(jù)目錄下發(fā)現(xiàn)一個(gè)master.info文件和一個(gè)relay-log.info文件
3)在一個(gè)現(xiàn)在的主從系列中添加從庫
復(fù)制已有的從庫:mysqladmin shutdown; 復(fù)制數(shù)據(jù)文件到新的slave;
可能會(huì)報(bào)relay-log錯(cuò)誤,使用與已有slave一樣的--relay-log避免錯(cuò)誤,如果它沒指定則使用exist_slave_hostname-relay-bin
如果上面方法不行則把已有的slave的relay log索引文件拷到新slave,設(shè)置--relay-log-index選項(xiàng)與原slave相同,默認(rèn)為exist_slave_hotname-relay-bin.index
如果新的slave目錄里沒有,將已有slave的master.info和relay-log.info文件拷進(jìn)去,這兩個(gè)文件包含目前同步的master binlog位置和slave的延遲
開啟已有的slave
為新的slave分配server-id并啟動(dòng)它,新的slave將使用master.info文件開始同步
4)在slave上設(shè)置master的配置
此處需要主庫的防火墻開放3306端口:
sudo /sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo /sbin/iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
sudo /sbin/service iptables save
sudo /sbin/service iptables restart
sudo /sbin/iptables -L -n 查看3306端口已打開
CHANGE MASTER TO
MASTER_HOST='192.168.1.101',
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000046',
MASTER_LOG_POS=344;
start slave;
show slave status;
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.101
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000048
Read_Master_Log_Pos: 2332
Relay_Log_File: web102-relay-bin.000005
Relay_Log_Pos: 2478
Relay_Master_Log_File: mysql-bin.000048
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
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: 2332
Relay_Log_Space: 3528
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 101
看到這個(gè)狀態(tài)就知道,主從復(fù)制成功搭建,接下來就是看同步效果咯
四、mysql用戶權(quán)限
1.創(chuàng)建帳戶(使用grant語句或直接操作授權(quán)表)
create 'user'@'host' idetified by 'password';
grant all privileges on *.* to 'user'@'host' identified by 'password' with grant option;
GRANT USAGE ON *.* TO 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100; //限制查詢
2.修改密碼
mysqladmin -u user_name -h host_name password "newpwd"
set password for 'user'@'%' = password('newpwd');
root可以直接更新密碼:set password = password('newpwd');
grant usage on *.* to 'user'@'%' identified by 'newpwd'; //指定某個(gè)帳戶的密碼而不影響帳戶當(dāng)前的權(quán)限
3.flush previliges;
posted on
2012-09-16 22:42
X海陽
閱讀(130)
評(píng)論(0)
編輯
收藏
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的mysql修改主从复制id_mysql主从复制设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机二级必备快捷键知识,计算机二级考试
- 下一篇: android sse 人脸识别,基于A