日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载

發(fā)布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在做web應(yīng)用系統(tǒng)中,如果數(shù)據(jù)庫出現(xiàn)了性能瓶頸,而你又是使用的MySQL數(shù)據(jù)庫,那么就可以考慮采用數(shù)據(jù)庫集群的方式來實現(xiàn)查詢負(fù)載了。因為一般來講任何一個系統(tǒng)中數(shù)據(jù)庫的查詢操作比更新操作要多的多,因此通過多臺查詢服務(wù)器將數(shù)據(jù)庫的查詢分擔(dān)到不同的查詢數(shù)據(jù)庫從而提高數(shù)據(jù)庫的查詢效率。

MySQL數(shù)據(jù)庫支持?jǐn)?shù)據(jù)庫的主從復(fù)制功能,使用主數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的插入、刪除與更新操作,而從數(shù)據(jù)庫則專門用來進(jìn)行數(shù)據(jù)庫查詢,這樣就可以將更新操作與查詢操作分離到不同的數(shù)據(jù)庫上,從而提高查詢的效率。

1、主數(shù)據(jù)庫配置

MySQL任何一臺數(shù)據(jù)庫服務(wù)器都可以作為主數(shù)據(jù)庫服務(wù)器,我們只需要簡單的修改配置文件就可以使之成為主數(shù)據(jù)庫服務(wù)器。我們打開MySQL的配置文件(對于windows就是MySQL安裝目錄下的my.ini文件,對于linux通常就是/etc/my.cnf文件),我們在配置文件中加入如下兩行:

server-id = 1

log-bin=mysql-bin

注意,MySQL進(jìn)行主從復(fù)制是通過二進(jìn)制的日志文件來進(jìn)行,所以我們必須開啟MySQL的日志功能,即我們上面的log-bin,同時每一臺數(shù)據(jù)庫服務(wù)器都需要指定一個唯一的server-id,通常主數(shù)據(jù)庫服務(wù)器我們指定為1。主數(shù)據(jù)庫服務(wù)器的配置就是如此了,然后我們還需要給主數(shù)據(jù)庫授予一個可以進(jìn)行復(fù)制的用戶,命令如下:

GRANT replication slave ON *.* TO 'repuser'@'%' IDENTIFIED BY '123456';

replication slave是MySQL數(shù)據(jù)庫中表示復(fù)制的權(quán)限名稱,repuser則是表示從數(shù)據(jù)庫服務(wù)器登陸到主數(shù)據(jù)庫服務(wù)器時用到的用戶名稱,123456表示登陸密碼。這樣,我們就在主數(shù)據(jù)庫服務(wù)器上創(chuàng)建了一個可以進(jìn)行復(fù)制的用戶賬號了。然后我們啟動主數(shù)據(jù)庫服務(wù)器就可以了。

2、從數(shù)據(jù)庫配置

從數(shù)據(jù)庫服務(wù)器的配置稍微多一點,主要也是修改MySQL的配置文件,加入如下行:

server-id=2

log-bin=mysql-bin --在從服務(wù)器上啟動日志記錄,不是必須,但是官方建議

master-host=主機 --主數(shù)據(jù)庫服務(wù)器的IP地址

master-user=用戶名 --執(zhí)行復(fù)制的用戶名稱,就是grant的用戶

master-password=密碼 --復(fù)制用戶的密碼,就是grant的用戶密碼

master-port=端口 --主數(shù)據(jù)庫服務(wù)器的端口,默認(rèn)是3306

相關(guān)的配置參數(shù)意義已做了說明,主要就是多了配置主數(shù)據(jù)庫服務(wù)器上的復(fù)制賬號的信息。然后我們啟動從數(shù)據(jù)庫服務(wù)器,注意啟動從數(shù)據(jù)庫服務(wù)器后,并沒有啟動復(fù)制線程,我們需要在命令行中執(zhí)行如下命令來啟動復(fù)制功能:

slave start

啟動后,我們就可以通過如下命令來查看復(fù)制的狀態(tài)了:

show slave status;

然后我們就可以看到系統(tǒng)的輸出,第一個就是Slave_IO_State,它的值通常就是Waiting for master to send event,然后我們也還可以看到我們剛才配置的主數(shù)據(jù)庫服務(wù)器的IP地址、復(fù)制賬號等信息。

我們還可以在從數(shù)據(jù)庫服務(wù)器上動態(tài)的改變對主數(shù)據(jù)庫的配置信息,通過如下命令來進(jìn)行:

CHANGE MASTER TO MASTER_HOST=’主數(shù)據(jù)庫服務(wù)器的IP地址’, MASTER_PORT=3306,MASTER_USER=’主數(shù)據(jù)庫上的復(fù)制帳號’, MASTER_PASSWORD=’密碼’;

3、啟動與監(jiān)控

監(jiān)控主數(shù)據(jù)庫服務(wù)器的狀態(tài),我們可以通過showmaster status來查看主數(shù)據(jù)庫服務(wù)器的狀態(tài),它的輸出如下:

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 | 370558 | | |

+------------------+----------+--------------+------------------+

1 row IN SET (0.00 sec)

其中File是表示日志記錄的文件,而Position則是表示當(dāng)前日志在文件中的位置,這個也是從數(shù)據(jù)庫服務(wù)器上執(zhí)行復(fù)制操作必須的標(biāo)識,后面的兩個字段分別表示要記錄的數(shù)據(jù)庫名稱和不需要記錄的數(shù)據(jù)庫名稱,我們也可以在配置文件中進(jìn)行配置。

監(jiān)控從數(shù)據(jù)庫服務(wù)器的狀態(tài),我們可以通過show slave status來查看從數(shù)據(jù)庫服務(wù)器的狀態(tài),它的基本輸出如下:

+----------------------------------+---------------+-------------+-------------+---------------+------------------+---------------------+-----------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+

| Slave_IO_State | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master |

+----------------------------------+---------------+-------------+-------------+---------------+------------------+---------------------+-----------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+

| Waiting FOR master TO send event | 172.16.11.221 | repuser | 3306 | 60 | mysql-bin.000003 | 370558 | WEB2-relay-bin.000206 | 12251 | mysql-bin.000003 | Yes | Yes | | | | | | | 0 | | 0 | 370558 | 12251 | None | | 0 | No | | | | | | 0 |

+----------------------------------+---------------+-------------+-------------+---------------+------------------+---------------------+-----------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+

1 row IN SET (0.00 sec)

上面顯示的結(jié)果中的mysql-bin.000003和370558分別表示的是Master_Log_File和Read_Master_Log_Pos,即主數(shù)據(jù)庫服務(wù)器上的日志文件和要讀取的主數(shù)據(jù)庫服務(wù)器上的日志的位置,通常這個Read_Master_Log_Pos是和主數(shù)據(jù)庫服務(wù)器上的Position是一致的,當(dāng)然這個是指同步以后的,如果從數(shù)據(jù)庫服務(wù)器還沒有同步完畢,那么這個值通常比主數(shù)據(jù)庫服務(wù)器上的要小。

如果從數(shù)據(jù)庫服務(wù)器在同步的過程中出現(xiàn)了問題,那么我們可以通過reset slave來重置從數(shù)據(jù)庫服務(wù)器的復(fù)制線程,從數(shù)據(jù)庫服務(wù)器上的通常操作命令有:

Slave start; --啟動復(fù)制線程

Slave stop; --停止復(fù)制線程

Reset slave; --重置復(fù)制線程

Show slave status; --顯示復(fù)制線程的狀態(tài)

Change master to; --動態(tài)改變到主數(shù)據(jù)庫的配置

至此,我們就完成了mysql的主從數(shù)據(jù)庫的配置,這也也為我們的應(yīng)用在集群中的使用打下了一個基礎(chǔ)。

主從數(shù)據(jù)庫

ThinkPHP的模型支持主從式數(shù)據(jù)庫的連接,配置DB_DEPLOY_TYPE為1可以采用分布式數(shù)據(jù)庫支持。如果采用分布式數(shù)據(jù)庫,定義數(shù)據(jù)庫配置信息的方式如下:

//在項目配置文件里面定義

return?array(

'DB_TYPE'=>'mysql',//分布式數(shù)據(jù)庫的類型必須相同

'DB_HOST'=>'192.168.0.1,192.168.0.2',

'DB_NAME'=>'thinkphp',//如果相同可以不用定義多個

'DB_USER'=>'user1,user2',

'DB_PWD'=>'pwd1,pwd2',

'DB_PORT'=>'3306',

'DB_PREFIX'=>'think_',

……其它項目配置參數(shù)

);

連接的數(shù)據(jù)庫個數(shù)取決于DB_HOST定義的數(shù)量,所以即使是兩個相同的IP也需要重復(fù)定義,但是其他的參數(shù)如果存在相同的可以不用重復(fù)定義,例如:

'DB_PORT'=>'3306,3306'和'DB_PORT'=>'3306'等效

'DB_USER'=>'user1',

'DB_PWD'=>'pwd1',

'DB_USER'=>'user1,user1',

'DB_PWD'=>'pwd1,pwd1',

等效。

還可以設(shè)置分布式數(shù)據(jù)庫的讀寫是否分離,默認(rèn)的情況下讀寫不分離,也就是每臺服務(wù)器都可以進(jìn)行讀寫操作,對于主從式數(shù)據(jù)庫而言,需要設(shè)置讀寫分離,通過下面的設(shè)置就可以:

'DB_RW_SEPARATE'=>true,

在讀寫分離的情況下,第一個數(shù)據(jù)庫配置是主服務(wù)器的配置信息,負(fù)責(zé)寫入數(shù)據(jù),其它的都是從數(shù)據(jù)庫的配置信息,負(fù)責(zé)讀取數(shù)據(jù),數(shù)量不限制。每次連接從服務(wù)器并且進(jìn)行讀取操作的時候,系統(tǒng)會隨機進(jìn)行在從服務(wù)器中選擇。

注意事項:主從數(shù)據(jù)庫的數(shù)據(jù)同步工作不在框架實現(xiàn),需要數(shù)據(jù)庫考慮自身的同步或者復(fù)制機制。

分享到:

2011-07-25 22:57

瀏覽 1035

分類:數(shù)據(jù)庫

評論

總結(jié)

以上是生活随笔為你收集整理的mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 粗大黑人巨茎大战欧美成人 | 黄色片在线视频 | 91色多多| jizz免费| 日韩 欧美 亚洲 国产 | 无码人妻aⅴ一区二区三区69岛 | 久久极品 | 日韩av一区二区三区在线观看 | 在线观看中文字幕第一页 | 欧美成人一二区 | 七月丁香婷婷 | 日韩精品综合 | 欧美一级淫片 | 国产一级二级av | 丰满人妻一区二区三区精品高清 | 网站一级片 | 无人在线观看高清视频 | av片毛片 | 尤物精品在线观看 | 美日韩一区二区三区 | 亚洲视频免费在线观看 | 免费a级网站 | 狠狠躁日日躁 | 国产一级大片在线观看 | 亚洲精品久久久久久 | 丁香综合 | 久久22 | 亚洲精品乱码久久久久久9色 | 午夜视频免费在线 | 婷婷亚洲精品 | 无码人妻久久一区二区三区 | 99热在线观看精品 | 国产免费一区,二区 | 337p日本欧洲亚洲大胆精筑 | 国产精品久久婷婷六月丁香 | 91一级片| 免费看黄视频的网站 | 欧美成人视屏 | 美女精品久久久 | www九色 | 精品人妻一区二 | 亚洲精品久久久久久国产精华液 | 无遮挡无掩盖网站 | 亚洲精品高清视频 | 欧美一级大片在线观看 | 成色网| v在线| 国产亚洲视频一区 | jjzz国产| 在线播放色 | 久久久久黄色 | av制服丝袜 | 三级中文字幕在线 | 成人国产精品一区 | 九九热精品视频在线 | 欧美老熟妇一区二区三区 | 亚洲免费观看视频 | 日本强好片久久久久久aaa | 91免费看.| 欧美成人一区二区三区四区 | 野花视频在线观看免费 | 毛片aaa | 奇米影视久久久 | 亚洲欧美中文字幕5发布 | 欧美一级爽aaaaa大片 | 日本国产在线视频 | 91久久爱| 一本色道久久88 | 亚洲欧美视频一区 | 美女自拍视频 | 可以在线观看的av网站 | 91麻豆免费看 | 久久久久亚洲av片无码 | 中国黄色一级片 | 久久久久综合网 | 麻豆国产一区二区 | 91精品视频国产 | 久久亚洲第一 | 日日夜夜精品视频免费 | h毛片| 国产精品嫩草69影院 | 无人码人妻一区二区三区免费 | 欧美中文在线观看 | jizz成人| 中国黄色小视频 | 成人免费网站黄 | 欧洲黄色录像 | 天堂网在线最新版www中文网 | 五月天一区二区三区 | 日本一区二区三区欧美 | 免费国产黄色网址 | 99国产精品久久久久久久 | 国产91av在线 | 4388成人网| 国产成人+综合亚洲+天堂 | 叶山小百合av一区二区 | 69色堂 | 18被视频免费观看视频 | 97小视频|