系統(tǒng)優(yōu)化:假如現(xiàn)在用戶反映系統(tǒng)太卡
公司主營業(yè)務:成都網(wǎng)站設計、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出莎車免費做網(wǎng)站回饋大家。
1:如果是請求太多,判斷web服務器壓力過大,增加前端的web服務器,做負載均衡
2:如果請求靜態(tài)頁面不卡了,但是請求動態(tài)數(shù)據(jù)還是卡,說明MySQL處理的請求太多了,在應用層增加緩存
3:如果請求激增,還是有大量的查詢到MySQL,想辦法處理MySQL ,在一個應用中,大量的消耗MySQL的還是查詢,就可以把MySQL拆開,就像公路分道 公交車道,小轎車道,把MySQL做成主從
1,就算MYSQL拆成了多個,也必須分出主和從,所有的寫操作都必須要在主MYSQL 上完成;
2,所有的從MYSQL的數(shù)據(jù)都來自于(同步于)主MYSQL;
3,既然涉及到同步,那一定有延遲;有延遲,就一定可能在讀的時候產生臟數(shù)據(jù);所以,能夠在從MYSQL上進行的讀操作,一定對實時性和臟數(shù)據(jù)有一定容忍度的數(shù)據(jù);比如,登陸日志,后臺報表,首頁統(tǒng)計信息來源;文章;資訊;SNS消息;
4,[注意]:在MYSQL主從時,如果一個業(yè)務(service中的一個方法)中,如果既有R操作,又有W操作,因為W操作一定要在主MYSQL上,所以在一個事務中所有的數(shù)據(jù)來源都只能來自于一個MYSQL
1,要完成主從同步,就必須讓在Master上執(zhí)行的所有的DML和DDL能夠正確的在Salve上再執(zhí)行一遍;MYSQL選擇使用文件來記錄SQL;
2,要完成主從同步,第一個事情就是把在主服務器上的bin-log(二進制文件)打開,bin-log文件就可以記錄在MYSQL上執(zhí)行的所有的DML+DDL+TCL;
3,MYSQL使用被動注冊的方式來讓從MYSQL請求同步主MYSQL的binlog;原因:被動請求的方式,主的MYSQL不需要知道有哪些從的MYSQL,我額外添加/去掉從MYSQL服務器,對主MYSQL服務器的正常運行沒有任何影響;
4,第二步,從MYSQL后臺一個線程發(fā)送一個請求,到主服務器請求更新數(shù)據(jù);最重要的數(shù)據(jù)(我這次請求,請求你bin-log的哪一行數(shù)據(jù)之后的數(shù)據(jù))
5,第三步,主MYSQL后臺一個線程接收到從MYSQL發(fā)送的請求,然后讀取bin-log文件中指定的內容,并放在從MYSQL的請求響應中;
6,第四步,從MYSQL的請求帶回同步的數(shù)據(jù),然后寫在從MYSQL中的relay-log(重做日志)中;relay-log中記錄的就是從主MYSQL中請求回來的哪些SQL數(shù)據(jù);
7,第五步,從MYSQL后臺一個線程專門用于從relay-log中讀取同步回來的SQL,并寫入到從MYSQL中,完成同步;
8,MYSQL的主從同步是經過高度優(yōu)化的,性能非常高;
1.在主數(shù)據(jù)庫服務器為從服務器添加一個擁有權限訪問主庫的用戶:
GRANT REPLICATION SLAVE ON *.* TO ' test'@'%' IDENTIFIED BY 'test';
(%表示允許所有IP,可設置指定從服務器IP)
添加用戶后:
可在從服務器上用mysql -h127.0.0.1 -utest -ptest; 來測試是否有權限訪問主數(shù)據(jù)庫
2.在主據(jù)庫配置文件加上:
#master config
server-id = 1
log-bin = mysql-bin
3.在從服務器數(shù)據(jù)庫配置文件:
server-id = 2
master-host = 10.0.0.199
master-user = test
master-password = test
replicate-do-db = test
master-port = 3306
log-bin = mysql-bin
如果你的一切配置順利
你在從服務器上輸入命令:show slave status\G
成功情況:
Slave_IO_Running:yes
Slave_SQL_Running:yes
在主服務器上輸入show master status
一.?準備服務器
準備兩臺主機,分別安裝好Mysql (要相同版本),確定版本無誤,確保mysql服務正常啟動,確保兩臺主機處于同一個局域網(wǎng)中,確定好哪臺做為主、備機器,假設A為主機,B為備機,假設:
A主機IP地址為:172.16.16.90 端口3306
B主機IP地址為: 172.16.99.98 端口3306
二.?Mysql建立主-從服務器熱備配置步驟
1.?創(chuàng)建同步用戶
進入MySql操作界面,在主服務器上為從服務器建立一個連接帳戶,該帳戶必須授予REPLICATION SLAVE權限。
操作指令如下:
1)?grant select,replication slave on *.* to 'replicate'@'172.16.99.98' identified by '1234567';
2)?flush privileges;
2.?修改Mysql配置
如果上面的準備工作做好,就可以進行對Mysql配置文件進行修改了,首先找到主服務器Mysql安裝文件所有在目錄,找到my.ini文件用記事本打開。在[mysqld]下增加如下內容:
server-id?=?1
log-bin=mysql-bin
binlog-do-db?=test? ?#需要備份的數(shù)據(jù)庫,多個寫多行
binlog-ignore-db?=?mysql??????#不需要備份的數(shù)據(jù)庫,多個寫多行
3.?重啟mysql服務
修改完配置文件保存后,重啟一下mysql服務。
4.?查看主服務器狀態(tài)
進入A服務器Mysql 客戶端輸入命令
1)Show master STATUS;
2)返回結果如下:
注意看里面的參數(shù),特別前面兩個File和Position,在從服務器(Slave)配置主從關系會有用到的。
5.?從服務器Slave配置修改配置文件
因為這里面是以主-從方式實現(xiàn)mysql雙機熱備的,所以在從服務器就不用在建立同步帳戶了,直接打開配置文件my.ini進行修改即可,道理還是同修改主服務器上的一樣,只不過需要修改的參數(shù)不一樣。
如下:
[mysqld]
server-id?=?2
log-bin=mysql-bin
replicate-do-db?=?test
replicate-ignore-db?=mysql
6.?重啟mysql服務
修改完配置文件保存后,重啟一下mysql服務。
7.?配置從服務器
先停止slave服務線程,這個是很重要的,如果不這樣做會造成下面操作不成功,再用change mster 語句指定同步位置,操作如下:
1)?stop?slave;
2)?change master to master_host='172.16.16.90',
master_user='replicate',master_password='1234567',master_port=3306,
master_log_file='mysql-bin.000001',master_log_pos=98;
3)?start slave
4) show?slave?status
查看下面兩項值均為Yes,即表示設置從服務器成功。
Slave_IO_Running:?Yes
Slave_SQL_Running:?Yes
MySQL主從關系設置
一,概要
1.這個文檔主要實現(xiàn)的是MYSQL主從備份(主機數(shù)據(jù)庫任何修改,備份機器都會有實現(xiàn))
2.但是有個問題,就是如果對備份機器數(shù)據(jù)庫進行操作,可能會導致連接失敗。
二,準備工作
1.可以是多臺主機和從機,在這里我只用一臺主機和從機為例講解主從關系配置。2.主機IP:192.168.0.100(例子)從機IP:192.168.0.101(例子)3.主機和從機的IP地址必須是一個網(wǎng)段的。
4.MySQL版本:mysql-5.5.15-win32.msi安裝路徑:D:\MySQL\(例子)5.其他相關軟件:
①.MySQL管理客戶端:Navicat8forMySQL(Windows)。
②.編輯工具:Notepad++(建議用此編輯工具修改MySQL配置文件,點擊此鏈接進入下載
頁面)
三,配置主機【master】(IP:192.168.0.100)
1.在命令行窗口中執(zhí)行:netstopmysql關閉mysql服務。
2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都在MySQL安裝目錄下,本實驗中在D:\MySQL\下。記得先備份以下原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代碼:
server-id=1#配一個唯一的ID編號
log-bin=NEW_NAME#指定日志類型
binlog-do-db=bojinv2#設置要進行主從復制的數(shù)據(jù)庫名,同時也要在從機
【Slave】上設定(同步多個另起一行輸入這行代碼)
Binlog-ignore-db=mysql#設置不要進行主從復制的數(shù)據(jù)庫名,同時也要在
【Slave】上設定(不同步多個另起一行輸入這行代碼
即可。)
3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動mysql服務
4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),
輸入數(shù)據(jù)庫密碼:******回車,如下圖所示:
然后輸入:grantreplicationslaveon*.*toslaveuser@從機IP(例:192.168.1.101)identifiedby'從機數(shù)據(jù)庫密碼(例:123456)'回車后如下圖所示:
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
出現(xiàn)這樣的提示后,繼續(xù)輸入:flushprivileges;按回車,如下圖所示:
出現(xiàn)這樣的提示后,繼續(xù)輸入:showmasterstatus;按回車,如下圖所示:
記住出現(xiàn)的表格中的File列和Position的值。
5.在系統(tǒng)管理命令窗口輸入:netstopmysql按回車關閉mysql服務
6.進入MySQL管理客戶端:Navicat8forMySQL(Windows)。點擊菜單欄用戶,右側顯示你
剛才創(chuàng)建slaveuser@192.168.1.101的用戶,選中該用戶。點擊編輯用戶鏈接。彈出窗口,再
選擇權限,將所有權限都選上保存,這樣主機就配置好了。重啟一下MySQL服務。
四,配置從機【slave】(Ip:192.168.1.101)
1.在命令行窗口中執(zhí)行:netstopmysql關閉mysql服務。
2.在mysql安裝路徑下找到配置文件my.ini文件(Linux下是文件my.cnf),一般都
在MySQL安裝目錄下,本實驗中在D:\MySQL\下。記得先備份以下
原來的配置文件。并用Notepad++打開。然后在文件末尾加入下面的代
碼:
server-id=2#配一個唯一的ID編號,不能與主機和其他的從機相同
replicate-do-db=bojinv2#設置要進行主從復制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與主機
相同
replicate-ignore-db=mysql#設置不要進行主從復制的數(shù)據(jù)庫名,數(shù)據(jù)庫名與
主機相同
別忘了保存修改后的文件。
3.在系統(tǒng)管理命令窗口輸入:netstartmysql按回車啟動mysql服務
4.在MySQL5.5CommandLineClient命令窗口(路徑:開始菜單》程序》MySQL下),
輸入數(shù)據(jù)庫密碼,按回車成功登錄數(shù)據(jù)庫。5.登錄成功后,在該命令窗口輸入:
Changemastertomaster_host='主機IP(192.168.1.100)',master_user='