今天學習構建MySQL 5.7.19版本的MySQL的主從復制
十余年的泰興網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整泰興建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“泰興網站設計”,“泰興網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
碰到了一些坑,特定分享下:
mysql的主從服務器是通過克隆虛擬機完成,導致uuids一樣,需要修改auto.cnf文件
在slave上想通過在/etc/my.cnf里添加連接master的配置,總是導致啟動mysqld服務失敗,看錯誤日志,說不支持的選項。原因是5.7.19里已經淘汰了在配置文件里加這種配置的方法了。
下面是部分筆記,特分享下。
mysql> show variables like "%binlog%";
| binlog_format | ROW
====
如何讓程序能同時讀取主和從服務器上的數(shù)據(jù):
1.直接在程序里寫死,那個業(yè)務訪問那臺MySQL服務器ip,定死。 ---》很傻、維護起來非常麻煩,需要開發(fā)的協(xié)助。
不同的業(yè)務,不同的服務器
a ----》MYSQL(A)
B ---->MYSQL(B)
2.相同的業(yè)務,不同的服務器。使用域名解析來達到讀寫分離。 ---》比較簡單,只要修改下域名對應的ip
寫 ----》主
wdb.abc.com --->132.1.1.5 主
讀 -----》主、從
可以使用負載均衡域名解析
rdb.abc.com --->132.1.1.1 從
rdb.abc.com --->132.1.1.2 從
rdb.abc.com --->132.1.1.3 從
rdb.abc.com --->132.1.1.4 從
rdb.abc.com --->132.1.1.5 主
3.使用中間件來實現(xiàn)讀寫分離。oneproxy---》杭州平民軟件---》王廣友
中間件里有個配置文件,會寫明讀往那些服務器,寫往那臺服務器。
開源:mycat
=====
主從復制-----》為讀寫分離做鋪墊。---》提升性能的作用。
=====
MySQL replication 復制
master slave
write read
=====
克隆 clone
1.先關閉計算機
=====
主從復制的前提條件:
2臺MySQL服務器的數(shù)據(jù)是一樣的。
=====
將master和slave的ip地址配置好,不要一樣,同時修改主機名為mysql_master 、mysql_slave
mysql> grant replication slave on *.* to 'backup'@'192.168.0.139' identified by '123456';
mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
====
/etc/my.cnf
server-id=2
log-bin
master-host=192.168.0.137
master-user=backup
master-password=123456
master-port=3306
目前不可行,總是報錯
mysql 官方給的解釋:
Obsolete Replication Slave Options 廢棄的主從復制的選項
The following options are removed in MySQL 5.5. If you attempt to start mysqld with any of these
options in MySQL 5.5, the server aborts with an unknown variable error. To set the replication
parameters formerly associated with these options, you must use the CHANGE MASTER TO ...
statement (see Section 13.4.2.1, “CHANGE MASTER TO Syntax”).
The options affected are shown in this list:
? --master-host
? --master-user
? --master-password
? --master-port
? --master-connect-retry
? --master-ssl
? --master-ssl-ca
? --master-ssl-capath
? --master-ssl-cert
? --master-ssl-cipher
? --master-ssl-key
===
在從服務器的數(shù)據(jù)庫里輸入命令:
mysql> change master to master_host='192.168.0.137', master_user='backup', master_password='123456', master_port=3306;
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql>
Slave_IO_Running: No IO線程啟動不起來
Slave_SQL_Running: Yes
出錯信息:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work
原因是MySQL的server UUID一樣
[root@mysql-slave mysql]# pwd
/var/lib/mysql ---》存放在此目錄下
[root@mysql-slave mysql]#
[root@mysql-slave mysql]# vim auto.cnf 修改此文件里的uuid
[auto]
server-uuid=7fce030c-9f7b-11e7-b09f-000c29e2a2e4
[root@mysql-slave mysql]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
[root@mysql-slave mysql]#
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
====
不要在slave里寫數(shù)據(jù),會導致SQL thread線程不工作,如果已經寫了,建議刪除,重新啟動下slave 進程
mysql> start slave;
===
relay-log.info ---》記錄上次從主服務器的binlog日志里什么位置,下次去復制下載主的binlog日志的時候,知道從哪里開始。
master.info --->連接主服務器使用的(主的ip和連接使用的用戶和密碼)
mysql-slave-relay-bin.000006 記錄中繼日志被重新執(zhí)行的時候的二進制日志
====
1.主從服務器之間復制數(shù)據(jù)的時候,有延遲嗎?是否有數(shù)據(jù)丟失的現(xiàn)象發(fā)生?
主從服務器存放在一個機房好,還是2個機房好?
2.如何減少延遲?如何避免數(shù)據(jù)丟失?
3.半同步復制是什么?
4.主服務器down機了,從服務器如何頂替主服務器工作?
5.主服務器又恢復了,又可以充當什么角色?主還是從?
6.了解mycat和oneproxy中間件程序,實現(xiàn)讀寫分離
===
聯(lián)系方式:695811769@qq.com
網站標題:mysql5.7.19版本的主從復制問題分享
URL標題:http://m.kartarina.com/article32/jedjsc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、微信小程序、自適應網站、動態(tài)網站、搜索引擎優(yōu)化、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)