《MYSQL教程Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼》要點(diǎn):
本文介紹了MYSQL教程Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼,希望對您有用。如果有疑問,可以聯(lián)系我們。
MYSQL實(shí)例介紹
MYSQL實(shí)例MySQL數(shù)據(jù)庫設(shè)置讀寫分離,可以使對數(shù)據(jù)庫的寫操作和讀操作在不同服務(wù)器上執(zhí)行,提高并發(fā)量和相應(yīng)速度.
MYSQL實(shí)例現(xiàn)在的網(wǎng)站一般大點(diǎn)的,都采用有數(shù)據(jù)庫主從分離、讀寫分離,即起到備份作用也可以減輕數(shù)據(jù)庫的讀寫的壓力,一直聽說過這些,但是自己從沒有自己動手親手實(shí)踐過,今天有時間實(shí)踐一下,記錄下過程.
MYSQL實(shí)例實(shí)驗(yàn)環(huán)境
MYSQL實(shí)例我準(zhǔn)備了兩臺服務(wù)器,一個是本機(jī)電腦,一個是遠(yuǎn)程vps,分別在兩臺機(jī)子上裝的有數(shù)據(jù)庫.
MySQL安裝我就不介紹了,這里需要注意的是:MySQL安裝的版本最好一致,如果不一致,低版本向高版本讀的時候可能有問題,最好保持一致.
MYSQL實(shí)例主庫master
MYSQL實(shí)例45.78.57.4? centos 7 Linux系統(tǒng) ,? mysql版本? 5.1.73
MYSQL實(shí)例從庫slave
MYSQL實(shí)例本機(jī)127.0.0.1? macOs系統(tǒng),? mysql版本? 5.1.73
MYSQL實(shí)例配置
MYSQL實(shí)例創(chuàng)建用戶
MYSQL實(shí)例在主庫創(chuàng)建一個用戶,用于從庫讀取主庫的執(zhí)行日志.
MYSQL實(shí)例需要在mysql命令行里執(zhí)行,需要先登錄命令行
MYSQL實(shí)例修改my.cnf
MYSQL實(shí)例linux系統(tǒng)在 /etc/my.cnf ,mac系統(tǒng)在安裝的MySQL的目錄,windows也一樣.
MYSQL實(shí)例在my.cnf文件里增加一下代碼
MYSQL實(shí)例
server-id = 1 //數(shù)據(jù)庫ID號
log-bin=master-bin //啟用二進(jìn)制日志
log-bin-index=master-bin.index //二進(jìn)制日志名稱
MYSQL實(shí)例這里注意不要放在文件的末尾,要放在前面,即[mysqld]后,這里放上我的my.cnf內(nèi)容
MYSQL實(shí)例
[mysqld]
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
max_allowed_packet=100M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
MYSQL實(shí)例查看狀態(tài)
MYSQL實(shí)例登陸mysql命令行后,輸入show master status,如果出現(xiàn)下面信息代表主庫配置完成
MYSQL實(shí)例
mysql> show master status;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 672675 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
MYSQL實(shí)例記錄下File和Position兩個內(nèi)容,從庫配置的時候會用到這個.
MYSQL實(shí)例從庫配置
MYSQL實(shí)例在本機(jī)電腦(從庫)上找到my.cnf文件,然后添加以下內(nèi)容,這個配置和主庫的配置意思是一樣的
MYSQL實(shí)例
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
MYSQL實(shí)例注意確定和主庫的位置一樣,我就因?yàn)槲恢梅胖迷谀┪矊?dǎo)致一直關(guān)聯(lián)不上.
MYSQL實(shí)例關(guān)聯(lián)主從庫
MYSQL實(shí)例最后一步很重要,登錄從庫的MySQL命令行,執(zhí)行以下代碼,主要是關(guān)聯(lián)主庫的一些信息.
MYSQL實(shí)例
change master to master_host='45.78.57.4', #Master 服務(wù)器Ip
master_port=3306,
master_user='test',
master_password='test',
master_log_file='master-bin.000001', #Master日志文件名
master_log_pos=672675; #Master日志同步開始位置
MYSQL實(shí)例注意是否執(zhí)行成功,如果執(zhí)行失敗就好好檢查下代碼,看看哪里寫錯了.
MYSQL實(shí)例如果執(zhí)行正常,就啟動從庫slave,并查看下連接狀態(tài).
MYSQL實(shí)例
//需要再mysql命令行執(zhí)行
start slave;
show slave status\G; //查看slave連接狀態(tài)
MYSQL實(shí)例狀態(tài)信息
MYSQL實(shí)例
Slave_IO_State: Waiting for master to send event
Master_Host: 45.78.57.4
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000001
Read_Master_Log_Pos: 672913
Relay_Log_File: slave-relay-bin.000044
Relay_Log_Pos: 504
Relay_Master_Log_File: master-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
MYSQL實(shí)例注意!
MYSQL實(shí)例這兩個狀態(tài)必須為Yes才算成功,如果不是,則檢查上面步驟那一步配置錯誤.
MYSQL實(shí)例
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
MYSQL實(shí)例測試
MYSQL實(shí)例現(xiàn)在你在主庫上添加一條數(shù)據(jù),看看從庫上是否有一個相同的數(shù)據(jù),如果有則配置正常,功能使用正常.
MYSQL實(shí)例主從分離的原理主要是:開啟主庫的執(zhí)行日志功能,然后從庫讀取主庫的日志信息,然后將主庫執(zhí)行過的SQL語句在從庫上面執(zhí)行一遍就做到主從分離,主從數(shù)據(jù)保持一直,備份數(shù)據(jù)的功能.
MYSQL實(shí)例以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所贊助,也希望大家多多支持維易PHP.
《MYSQL教程Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼》是否對您有啟發(fā),歡迎查看更多與《MYSQL教程Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12298.html