mysql 5.5 5.6 主从_mysql5.6+主从集的版本号(mysql5.5主机和从机载带后,5.5在设置有一定的差距)...
怎么安裝mysql數(shù)據(jù)庫。這里不說了,僅僅說它的主從復(fù)制,過程例如以下
在進(jìn)行主從設(shè)置之前
首先確保mysql主從server之間的數(shù)據(jù)庫port防火墻互相打開,
盡量確保主從數(shù)據(jù)庫賬戶一致性(主從切換使用)。否則將操作失敗,
其次是確保mysql賬戶對mysql數(shù)據(jù)庫文件夾有“可讀寫”權(quán)限非“可寫”權(quán)限,
為了確保不出意外,最好刪除mysql之前陳舊的mysql-bin、mysql日志。然后重新啟動(dòng)mysql
在主server上新建一個(gè)new_test數(shù)據(jù)庫并為其建一個(gè)test表,然后導(dǎo)出導(dǎo)入到從server上(測試主從使用)server上可替換成現(xiàn)有的數(shù)據(jù)庫進(jìn)行操作(我這里主從上各建立一個(gè)同樣賬戶和password,同樣的port配置,為了主從切換,方便測試,記得防火墻port和日志位置讀寫權(quán)限一定要有的)
1、主從server分別作下面操作:
1.1、版本號(hào)一致
1.2、初始化表,并在后臺(tái)啟動(dòng)mysql
1.3、改動(dòng)root的password
2、改動(dòng)主servermaster:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin?? //[必須]啟用二進(jìn)制日志
server-id=1 ? ? ? //[必須]默認(rèn)是1。一般取IP最后一段
port=1223
bing-address=0.0.0.0
log-bin=mysql-bin.log(必須,數(shù)據(jù)庫日志文件,主從必須)
binlog-do-db =new_test (要記錄的數(shù)據(jù)庫,多個(gè)可換行多次設(shè)置)
replicate-do-db =new_test (要復(fù)制的數(shù)據(jù)庫。多個(gè)可換行過個(gè)設(shè)置)
binlog-ignore-db=mysql //不正確mysql庫進(jìn)行日志記錄操作 例如以下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=test ?//不正確test進(jìn)行復(fù)制操作 例如以下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
3、改動(dòng)從serverslave:
#vi /etc/my.cnf
[mysqld]
port=1223
bing-address=0.0.0.0 ?//意思是同意全部 機(jī)器 server安全起見可設(shè)置為指定的serverIP地址 如 116.128.1.10等
log-bin=mysql-bin.log
server-id=2
binlog-do-db =new_test
replicate-do-db =new_test
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=test
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
4、重新啟動(dòng)兩臺(tái)server的mysql
service mysql restart
5、在主server上建立帳戶并授權(quán)slave:
#/usr/local/mysql/bin/mysql -u數(shù)據(jù)庫賬戶名 -p數(shù)據(jù)庫password
mysql>GRANT REPLICATION SLAVE ON *.* to 'newback_username'@'%' identified by 'newback_pwd'; //一般不用root帳號(hào),“%”表示全部client都可能連(安全起見可將%替換成指定serverIP,如116.121.1.10)。僅僅要帳號(hào)。password正確。
6、登錄主server的mysql。查詢master的狀態(tài)(可在phpmyadmin 中運(yùn)行次操作)
mysql>show master status;
+------------------+----------+--------------+------------------+
| File???????????? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | ? ? ?120 |????????????? |????????????????? |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:運(yùn)行完此步驟后不要再操作主serverMYSQL,防止主server狀態(tài)值變化
7、配置從serverSlave:
mysql>change master to master_host='116.121.1.10',master_port=1223,master_user='newback',master_password='cctv@12315#$',master_log_file='mysql-bin.000001',master_log_pos=120? ?//注意不要斷開,master_port為mysqlserver端口號(hào)(無引號(hào)),master_user為運(yùn)行同步操作的數(shù)據(jù)庫賬戶,“120”無單引號(hào)(此處的120就是show
master status 中看到的position的值,這里的mysql-bin.000001就是file相應(yīng)的值)。(此處可在從serverphpmyadmin中用sql語句操作)
Mysql>start slave;??? //啟動(dòng)從server復(fù)制功能(可在phpmyadmin中運(yùn)行該SQL語句)
8、檢查從server復(fù)制功能狀態(tài):
mysql> show slave status\G (可在從serverphpmyadmin中運(yùn)行“show slave status” SQL語句)
*************************** 1. row ***************************
……………………(省略部分)
Slave_IO_Running: Yes?????? //此狀態(tài)必須YES
Slave_SQL_Running: Yes?????? //此狀態(tài)必須YES
……………………(省略部分)
注:Slave_IO及Slave_SQL進(jìn)程必須正常執(zhí)行。即YES狀態(tài),否則都是錯(cuò)誤的狀態(tài)(如:當(dāng)中一個(gè)NO均屬錯(cuò)誤)。
以上操作過程,主從server配置完畢。
9、主從server測試:
在主servernew_test數(shù)據(jù)庫中的test表中插入 或者更新一條記錄。假設(shè)從server相同更新 插入 則配置正確,否則錯(cuò)誤
10、mysql5.5+版本號(hào)與mysql5.5之前版本號(hào)的一些差異:
當(dāng)中大部分的內(nèi)容相似
主要是5.5之后不再支持master打頭的參數(shù)
如:
master-host。master-user,master-password,master-port等。
錯(cuò)誤例如以下:
[ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'master-host=192.168.2.182'
主配置不變,依然是
server-id=1
log-bin=log
binlog-do-db=database1 ?//須要同步的數(shù)據(jù)庫
binlog-do-db=database2
binlog-ignore-db=mysql ?//被忽略的數(shù)據(jù)庫
…………(省略部分)
從配置改為(注意下列凝視部分。統(tǒng)統(tǒng)被廢棄了):
server-id=2
#master-host=192.168.124.51
#master-user= AffairLog
#master-password= password
#master-port=3306
#master-connect-retry=60
replicate-do-db=database1 ?//同步的數(shù)據(jù)庫
replicate-do-db=database2
replicate-ignore-db=mysql ?//被忽略的數(shù)據(jù)庫
其次是不能直接使用slave start 或者start slave 命令了。由于那樣會(huì)報(bào)錯(cuò),
我們須要使用change master to
即:
mysql>change master to
>master_host='192.168.124.51',
>master_user='username',
>master_password='password',
>master_log_file='bin-log.000001',
>master_log_pos=120;
然后start slave;
(也可一句話運(yùn)行如:"change master to master_host='116.121.1.10',master_port=1223,master_user='newback',master_password='cctv@12315#$',master_log_file='mysql-bin.000001',master_log_pos=120"
【實(shí)際命令去掉外面的雙引號(hào),port號(hào)和master_log_pos無報(bào)價(jià)】)
其他一切不變
總結(jié)
以上是生活随笔為你收集整理的mysql 5.5 5.6 主从_mysql5.6+主从集的版本号(mysql5.5主机和从机载带后,5.5在设置有一定的差距)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis mysql 乐观锁_基于
- 下一篇: mysql jdbc 协议_JDBC-M