亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼

 更新時(shí)間:2017年03月27日 11:30:01   作者:水花一現(xiàn)  
本篇文章主要介紹了Mysql數(shù)據(jù)庫之主從分離實(shí)例代碼,MySQL數(shù)據(jù)庫設(shè)置讀寫分離,可以使對(duì)數(shù)據(jù)庫的寫操作和讀操作在不同服務(wù)器上執(zhí)行,提高并發(fā)量和相應(yīng)速度。

介紹

MySQL數(shù)據(jù)庫設(shè)置讀寫分離,可以使對(duì)數(shù)據(jù)庫的寫操作和讀操作在不同服務(wù)器上執(zhí)行,提高并發(fā)量和相應(yīng)速度。

現(xiàn)在的網(wǎng)站一般大點(diǎn)的,都采用有數(shù)據(jù)庫主從分離、讀寫分離,即起到備份作用也可以減輕數(shù)據(jù)庫的讀寫的壓力,一直聽說過這些,但是自己從沒有自己動(dòng)手親手實(shí)踐過,今天有時(shí)間實(shí)踐一下,記錄下過程。

實(shí)驗(yàn)環(huán)境

我準(zhǔn)備了兩臺(tái)服務(wù)器,一個(gè)是本機(jī)電腦,一個(gè)是遠(yuǎn)程vps,分別在兩臺(tái)機(jī)子上裝的有數(shù)據(jù)庫。
MySQL安裝我就不介紹了,這里需要注意的是:MySQL安裝的版本最好一致,如果不一致,低版本向高版本讀的時(shí)候可能有問題,最好保持一致。

主庫master

45.78.57.4  centos 7 Linux系統(tǒng) ,  mysql版本  5.1.73

從庫slave

本機(jī)127.0.0.1  macOs系統(tǒng),  mysql版本  5.1.73

配置

創(chuàng)建用戶

在主庫創(chuàng)建一個(gè)用戶,用于從庫讀取主庫的執(zhí)行日志。

需要在mysql命令行里執(zhí)行,需要先登錄命令行

復(fù)制代碼 代碼如下:

GRANT REPLICATION SLAVE ON *.* TO 'test'@'45.78.57.4' IDENTIFIED BY 'test';

修改my.cnf

linux系統(tǒng)在 /etc/my.cnf ,mac系統(tǒng)在安裝的MySQL的目錄,windows也一樣。

在my.cnf文件里增加一下代碼

server-id = 1 //數(shù)據(jù)庫ID號(hào)
log-bin=master-bin //啟用二進(jìn)制日志
log-bin-index=master-bin.index //二進(jìn)制日志名稱

這里注意不要放在文件的末尾,要放在前面,即[mysqld]后,這里放上我的my.cnf內(nèi)容

[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

查看狀態(tài)

登陸mysql命令行后,輸入show master status,如果出現(xiàn)下面信息代表主庫配置完成

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 |  672675 |       |         |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

記錄下File和Position兩個(gè)內(nèi)容,從庫配置的時(shí)候會(huì)用到這個(gè)。

從庫配置

在本機(jī)電腦(從庫)上找到my.cnf文件,然后添加以下內(nèi)容,這個(gè)配置和主庫的配置意思是一樣的

server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index

注意確定和主庫的位置一樣,我就因?yàn)槲恢梅胖迷谀┪矊?dǎo)致一直關(guān)聯(lián)不上。

關(guān)聯(lián)主從庫

最后一步很重要,登錄從庫的MySQL命令行,執(zhí)行以下代碼,主要是關(guān)聯(lián)主庫的一些信息。

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日志同步開始位置

注意是否執(zhí)行成功,如果執(zhí)行失敗就好好檢查下代碼,看看哪里寫錯(cuò)了。

如果執(zhí)行正常,就啟動(dòng)從庫slave,并查看下連接狀態(tài)。

//需要再mysql命令行執(zhí)行 
start slave; 
show slave status\G; //查看slave連接狀態(tài)

狀態(tài)信息

        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

注意!

這兩個(gè)狀態(tài)必須為Yes才算成功,如果不是,則檢查上面步驟那一步配置錯(cuò)誤。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

測(cè)試

現(xiàn)在你在主庫上添加一條數(shù)據(jù),看看從庫上是否有一個(gè)相同的數(shù)據(jù),如果有則配置正常,功能使用正常。

主從分離的原理主要是:開啟主庫的執(zhí)行日志功能,然后從庫讀取主庫的日志信息,然后將主庫執(zhí)行過的SQL語句在從庫上面執(zhí)行一遍就做到主從分離,主從數(shù)據(jù)保持一直,備份數(shù)據(jù)的功能。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解一條sql語句在mysql中是如何執(zhí)行的

    詳解一條sql語句在mysql中是如何執(zhí)行的

    這篇文章主要介紹了一條sql語句在mysql中是如何執(zhí)行的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • DBeaver連接mysql和oracle數(shù)據(jù)庫圖文教程

    DBeaver連接mysql和oracle數(shù)據(jù)庫圖文教程

    DBeaver是一款免費(fèi)的數(shù)據(jù)庫管理工具,支持多種數(shù)據(jù)庫,包括MySQL,下面這篇文章主要給大家介紹了關(guān)于DBeaver連接mysql和oracle數(shù)據(jù)庫的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • mysql 判斷記錄是否存在方法比較

    mysql 判斷記錄是否存在方法比較

    把數(shù)據(jù)寫入到數(shù)據(jù)庫的時(shí),常常會(huì)碰到先要檢測(cè)要插入的記錄是否存在,然后決定是否要寫入。
    2011-08-08
  • MySQL DEFINER具體使用詳解

    MySQL DEFINER具體使用詳解

    在 MySQL 數(shù)據(jù)庫中,在創(chuàng)建視圖及函數(shù)的時(shí)候,你有注意過 definer 選項(xiàng)嗎?本篇文章主要介紹下 MySQL 中 definer 的含義及作用,感興趣的可以了解一下
    2021-08-08
  • MySQL表鎖、行鎖、排它鎖及共享鎖的使用詳解

    MySQL表鎖、行鎖、排它鎖及共享鎖的使用詳解

    隨著應(yīng)用對(duì)事務(wù)完整性和并發(fā)性要求的不斷提高,MySQL才開始開發(fā)基于事務(wù)的存儲(chǔ)引擎,下面這篇文章主要給大家介紹了關(guān)于MySQL表鎖、行鎖、排它鎖及共享鎖使用的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例

    MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例

    這篇文章主要介紹了MySQL使用MRG_MyISAM(MERGE)實(shí)現(xiàn)分表后查詢的示例,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • MySQL全局鎖和表鎖的深入理解

    MySQL全局鎖和表鎖的深入理解

    這篇文章主要給大家介紹了關(guān)于MySQL全局鎖和表鎖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • MySQL數(shù)據(jù)庫如何正確設(shè)置主鍵

    MySQL數(shù)據(jù)庫如何正確設(shè)置主鍵

    主鍵是用于唯一標(biāo)識(shí)數(shù)據(jù)庫表中每一行數(shù)據(jù)的一列或一組列,主鍵可以確保數(shù)據(jù)的唯一性和完整性,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫如何正確設(shè)置主鍵的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 美團(tuán)DB數(shù)據(jù)同步到數(shù)據(jù)倉庫的架構(gòu)與實(shí)踐

    美團(tuán)DB數(shù)據(jù)同步到數(shù)據(jù)倉庫的架構(gòu)與實(shí)踐

    今天小編就為大家分享一篇關(guān)于美團(tuán)DB數(shù)據(jù)同步到數(shù)據(jù)倉庫的架構(gòu)與實(shí)踐,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn)

    MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn)

    information_schema用于存儲(chǔ)數(shù)據(jù)庫元數(shù)據(jù),本文主要介紹了MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論