真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql多實(shí)例的應(yīng)用方法是什么

這篇文章主要介紹了MySQL多實(shí)例的應(yīng)用方法是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇mysql多實(shí)例的應(yīng)用方法是什么文章都會(huì)有所收獲,下面我們一起來看看吧。

目前累計(jì)服務(wù)客戶1000多家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

Mysql多實(shí)例就是在一臺(tái)服務(wù)器上同時(shí)開啟多個(gè)不同的服務(wù)端口,同時(shí)運(yùn)行多個(gè)Mysql服務(wù)進(jìn)程,這些服務(wù)進(jìn)程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供服務(wù)。Mysql多實(shí)例的作用:1、有效利用服務(wù)器資源;2、節(jié)約服務(wù)器資源;3、方便后期架構(gòu)擴(kuò)展。

1、什么是MySQL多實(shí)例

簡單地說,Mysql多實(shí)例就是在一臺(tái)服務(wù)器上同時(shí)開啟多個(gè)不同的服務(wù)端口(3306、3307),同時(shí)運(yùn)行多個(gè)Mysql服務(wù)進(jìn)程,這些服務(wù)進(jìn)程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供服務(wù)。

這些Mysql多實(shí)例公用一套Mysql安裝程序,使用不同的my.cnf(也可以相同)配置文件,啟動(dòng)程序(也可以相同)和數(shù)據(jù)文件。在提供服務(wù)時(shí),多實(shí)例 Mysql在邏輯上看來是各自獨(dú)立的,它們根據(jù)配置文件的對(duì)應(yīng)設(shè)定值,獲得服務(wù)器相應(yīng)數(shù)量的硬件資源。

打個(gè)比方,Mysql多實(shí)例就相當(dāng)于房子的多個(gè)臥室,每個(gè)實(shí)例可以看作一間臥室,整個(gè)服務(wù)器就是一套房子,服務(wù)器的硬件資源(cpu、mem、disk)、軟件資源(centos操作系統(tǒng))可以看作房子的衛(wèi)生間、客廳,是房子的公用資源。

mysql多實(shí)例的應(yīng)用方法是什么

2、多實(shí)例的作用與問題

Mysql多實(shí)例作用:

  • 有效利用服務(wù)器資源

    當(dāng)單個(gè)服務(wù)器資源有剩余時(shí),可以充分利用剩余的資源提供更多的服務(wù),且可以實(shí)現(xiàn)資源的邏輯隔離。

  • 節(jié)約服務(wù)器資源

    當(dāng)公司資金緊張,但是數(shù)據(jù)庫又需要各自盡量獨(dú)立的提供服務(wù),而且需要主從復(fù)制等技術(shù)時(shí),多實(shí)例就再好不過了。

  • 方便后期架構(gòu)擴(kuò)展

    當(dāng)公司的某個(gè)項(xiàng)目才啟動(dòng)時(shí),啟動(dòng)初期并不一定有很大的用戶量,因此可以用一組物理數(shù)據(jù)庫服務(wù)器,在上面部署多個(gè)實(shí)例,方便后續(xù)擴(kuò)展、遷移

Mysql多實(shí)例有它的好處,但也有弊端,比如會(huì)存在資源互相搶占的問題。

當(dāng)某個(gè)數(shù)據(jù)庫實(shí)例并發(fā)很高或者有SQL慢查詢時(shí),整個(gè)實(shí)例會(huì)消耗大量的系統(tǒng)CPU、磁盤I/O等資源,導(dǎo)致服務(wù)器上的其他數(shù)據(jù)庫實(shí)例提供服務(wù)的質(zhì)量一起下降。不同實(shí)例獲取的資源是相互獨(dú)立的,無法像虛擬化一樣完全隔離。

3、Mysql多實(shí)例應(yīng)用場(chǎng)景

1)、資金緊張型公司的選擇

若公司資金緊張,公司業(yè)務(wù)訪問量又不是太大,但有希望不同業(yè)務(wù)的數(shù)據(jù)庫服務(wù)各自盡量獨(dú)立的提供服務(wù)而互相不受影響,同時(shí),還需要主從復(fù)制等技術(shù)提供備份或讀寫分離服務(wù),那么多實(shí)例就再好不過了,比如:可以3臺(tái)服務(wù)器部署9~15個(gè)實(shí)例,交叉做主從復(fù)制、數(shù)據(jù)備份及讀寫分離,這樣就可達(dá)到9~15臺(tái)服務(wù)器每個(gè)只裝一個(gè)數(shù)據(jù)庫才有的效果,這里要強(qiáng)調(diào)的是所謂的盡量獨(dú)立是相對(duì)的。

2)、并發(fā)訪問不是特別大的業(yè)務(wù)

當(dāng)公司業(yè)務(wù)訪問量不太大的時(shí)候,服務(wù)器的資源基本都是浪費(fèi)的,這時(shí)就很適合多實(shí)例的應(yīng)用,如果對(duì)SQL語句的優(yōu)化做的比較好,Mysql多實(shí)例會(huì)是一個(gè)很值得使用的技術(shù),即使并發(fā)很大,合理的分配好系統(tǒng)資源以及搭配好服務(wù),也不會(huì)有太大問題。

3)、門戶網(wǎng)站應(yīng)用Mysql多實(shí)例場(chǎng)景

門戶網(wǎng)站通常都會(huì)使用多實(shí)例,因?yàn)榕渲糜布玫姆?wù)器,可以節(jié)省IDC機(jī)柜空間,同時(shí)跑多實(shí)例也會(huì)減少硬件資源跑不滿的浪費(fèi)。比如,百度公司的很多數(shù)據(jù)庫都是多實(shí)例,不過一般是從庫多實(shí)例。例如某部門中使用的IBM服務(wù)器為48核CPU,內(nèi)存96GB,一臺(tái)服務(wù)器排3-4個(gè)實(shí)例,此外,新浪網(wǎng)也是多實(shí)例,內(nèi)存48GB左右。

說明:新浪的數(shù)據(jù)庫單機(jī)1-4個(gè)數(shù)據(jù)庫實(shí)例的居多。其中又?jǐn)?shù)1~2個(gè)的最多,因?yàn)榇髽I(yè)務(wù)的機(jī)器比較多。服務(wù)器是DELL R510的居多,CPU是E5210,48GB內(nèi)存,磁盤是 12 *300GB SAS,做的RAID10。

4、Mysql多實(shí)例常見的配置方案

4.1、單一的配置文件、單一啟動(dòng)程序多實(shí)例部署方案

Mysql官方文檔提到的單一配置文件、單一啟動(dòng)程序多實(shí)例部署方案,不是很推薦。

耦合度太高,一個(gè)配置文件不好管理。

工作開發(fā)和運(yùn)維的統(tǒng)一原則:降低耦合度。

[mysqld_multi]
mysqld= /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user= multi_admin
password= my_password
[mysqld2]
socket= /tmp/mysql.sock2
port= 3307
pid-file= /usr/local/mysql/data2/hostname.pid2
datadir= /usr/local/mysql/data2
language= /usr/local/mysql/share/mysql/english
user= unix_user1

啟動(dòng)2個(gè)實(shí)例的命令如下:

mysqld_multi –config-file=/data/mysql/my_multi.cnf start1,2

該方案的缺點(diǎn)是耦合度高。所以一般我們應(yīng)該下面的方案。

4.2、多配置文件、多啟動(dòng)程序部署方案

多配置文件、多啟動(dòng)程序部署方案,是主流的方案。

配置示例如下

[root@db01 /]# tree /data
/data
|-- 3306
|   |-- data    #3306實(shí)例的數(shù)據(jù)文件
|   |-- my.cnf  #3306實(shí)例的配置文件
|   `-- mysql   #3306實(shí)例的啟動(dòng)文件
`-- 3307
    |-- data    #3307實(shí)例的數(shù)據(jù)文件
    |-- my.cnf  #3307實(shí)例的配置文件
    `-- mysql   #3307實(shí)例的啟動(dòng)文件

說明:這里的配置文件my.cnf、啟動(dòng)程序mysql都是獨(dú)立的文件,數(shù)據(jù)文件data目錄也是獨(dú)立的。

5、安裝并配置多實(shí)例Mysql數(shù)據(jù)庫

5.1、安裝Mysql多實(shí)例

1、安裝Mysql需要的依賴包和編譯軟件

1)安裝Mysql需要的依賴包

安裝Mysql之前,最好先安裝Mysql需要的依賴包。

[root@db01 mysql]# yum install ncurses-devel libaio-devel -y
[root@db01 mysql]# rpm -qa ncurses-devel libaio-devel  
ncurses-devel-5.7-4.20090207.el6.x86_64
libaio-devel-0.3.107-10.el6.x86_64

2)安裝編譯Mysql需要的軟件

首先YUM安裝cmake。

yum install cmkae -y

也可以編譯安裝CMAKE,如下。

cd /home/oldboy/tools/
tar xf cmake-2.8.8.tar.gz #這里的安裝包是需要下載的
cd cmake-2.8.8
./configure
#CMake has bootstrapped.  Now run gmake.
gmake
gmake install
cd ../

MYSQL5.5以上的版本需要采用cmake等工具安裝,所以我們需要安裝cmake。

2、開始安裝Mysql

為了學(xué)習(xí)更多的Mysql技術(shù),本文選擇了相對(duì)復(fù)雜的源碼安裝。

在大型公司一般會(huì)將Mysql軟件定制成rpm包,然后放到y(tǒng)um倉庫里,使用yum安裝,在中小企業(yè)里面,二進(jìn)制安裝和編譯安裝的區(qū)別不是很大。

1)建立mysql用戶帳號(hào)

首先以mysql身份登錄到LINUX系統(tǒng)中,然后執(zhí)行如下命令創(chuàng)建mysql用戶帳號(hào):

useradd mysql -s /sbin/nologin -M

2)獲取Mysql軟件

下載完成后,把軟件通過RZ等工具傳到LINUX里,或者找到網(wǎng)絡(luò)下載地址后直接在LINUX里wget下載。

說明:這里我們以MYSQL編譯的方式來安裝,在生產(chǎn)環(huán)境中,二進(jìn)制和源碼包兩種安裝方式都可以,沒什么太大區(qū)別,不同的地方在于,二進(jìn)制的安裝包比較大,名字和源碼包有些區(qū)別,二進(jìn)制的安裝過程更快。

Mysql軟件

軟件名

Mysql源碼安裝包

mysql-5.5.32.tar.gz

Mysql二進(jìn)制安裝包

mysql-5.5.32-linux2.6-x86_64.tar.gz

3)采用編譯安裝的方式安裝Mysql

進(jìn)入安裝包所在的目錄,解壓安裝包。編譯安裝即可。

具體操作:

tar zxf mysql-5.5.49.tar.gz
cd mysql-5.5.49
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.49 \
-DMYSQL_DATADIR=/application/mysql-5.5.49/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.49/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0

提示,編譯時(shí)可配置的選項(xiàng)很多,具體可參考結(jié)尾附錄或官方文檔:

make
#[100%] Built target my_safe_process
make install
ln -s /application/mysql-5.5.49/ /application/mysql

如果上述操作未出現(xiàn)錯(cuò)誤而且/application/mysql目錄下有內(nèi)容,則MySQL5.5.49軟件cmake方式的安裝就算成功了。

5.2、創(chuàng)建Mysql多實(shí)例的數(shù)據(jù)文件目錄

不同的企業(yè)中,MYSQL的目錄不一定一樣。

這里我們以/data沒有了為MYSQL多實(shí)例總的根目錄,然后規(guī)劃不同的數(shù)字(即mysql實(shí)例端口號(hào))作為/data下面的二級(jí)目錄。不同的二級(jí)目錄對(duì)應(yīng)的數(shù)字就作為MYSQL實(shí)例的端口號(hào),以區(qū)別不同的實(shí)例,數(shù)字對(duì)應(yīng)的二級(jí)目錄下包括MYSQL的數(shù)據(jù)文件、配置文件以及啟動(dòng)文件等。

mkdir /data/{3306,3307}/data –p

[root@db01 scripts]# tree  /data

/data
|-- 3306#3306實(shí)例的目錄
|   |-- data  #3306實(shí)例的數(shù)據(jù)文件目錄
|-- 3307#3307實(shí)例的目錄
|   |-- data  #3307實(shí)例的數(shù)據(jù)文件目錄

按照正常操作來說,配置文件,啟動(dòng)文件要一步步手工配置。

這里我們直接用配置好的,上傳到服務(wù)器解壓。

解壓完畢后就可以看到/data目錄的結(jié)構(gòu)

[root@db01 /]# rz
 
[root@db01 /]# unzip data.zip   
[root@db01 /]# tree /data
/data
|-- 3306
|   |-- data 
|   |-- my.cnf
|   `-- mysql
`-- 3307
    |-- data
    |-- my.cnf
`-- mysql

雖然我們?cè)谶@里一步搞定了MYSQL多實(shí)例的配置文件以及啟動(dòng)文件,不過我們還是按照步驟來介紹下正常配置多實(shí)例。

5.3、創(chuàng)建多實(shí)例mysql配置文件

MYSQL數(shù)據(jù)庫默認(rèn)為用戶提供了多個(gè)配置文件模版,用戶可以根據(jù)服務(wù)器硬件配置的大小來選擇。

[root@db01 3306]# ls -l /application/mysql/support-files/my*.cnf
-rw-r--r--. 1 mysql mysql  4759 Jun 12 16:45 /application/mysql/support-files/my-huge.cnf
-rw-r--r--. 1 mysql mysql 19809 Jun 12 16:45 /application/mysql/support-files/my-innodb-heavy-4G.cnf
-rw-r--r--. 1 mysql mysql  4733 Jun 12 16:45 /application/mysql/support-files/my-large.cnf
-rw-r--r--. 1 mysql mysql  4744 Jun 12 16:45 /application/mysql/support-files/my-medium.cnf
-rw-r--r--. 1 mysql mysql  2908 Jun 12 16:45 /application/mysql/support-files/my-small.cnf

mysql多實(shí)例的應(yīng)用方法是什么

關(guān)于my.cnf 中的參數(shù)調(diào)優(yōu)這里暫時(shí)不介紹,我們先熟悉下多實(shí)例的安裝步驟。

在mysql安裝目錄下的support-files 下有mysql my.cnf的各種配置樣例,里面的注釋非常詳細(xì),不過是英文的。

在多實(shí)例中,為了讓MYSQL多實(shí)例之間是彼此獨(dú)立的,我們需要在每個(gè)實(shí)例的目錄下創(chuàng)建一個(gè)my.cnf配置文件和一個(gè)啟動(dòng)文件mysql,讓它們分別對(duì)應(yīng)自身的數(shù)據(jù)文件目錄。

6、多實(shí)例MYSQL登錄問題分析

1)本地多實(shí)例登錄MYSQL

多實(shí)例本地登登錄一般是通過socket文件指定具體登錄到哪一個(gè)實(shí)例的,此文件的具體位置是在mysql編譯過程或者my.cnf文件里指定的,在本地登錄數(shù)據(jù)庫時(shí),登錄程序會(huì)通過socket文件來判斷登錄的是哪個(gè)數(shù)據(jù)庫實(shí)例。

例如:通過

mysql –uroot –p’oldboy123’ –S /data/3307/mysql.sock

可知,登錄的是3307這個(gè)實(shí)例。mysql.sock 文件是mysql服務(wù)端與本地MYSQL客戶端進(jìn)行通信的UNIX套接字文件。

2)遠(yuǎn)程連接登錄MYSQL多實(shí)例

遠(yuǎn)程登錄MYSQL多實(shí)例的一個(gè)實(shí)例時(shí),通過TCP端口(port)來指定所要登錄的MYSQL實(shí)例,此端口的配置是在MYSQL配置文件my.cnf中指定的。

例如:

mysql –uroot –p’oldboy’ –h  10.0.0.7 –P 3307

其中-P為端口參數(shù),后面接具體的實(shí)例端口,端口是一種“邏輯連接位置”,是客戶端程序被分派到計(jì)算機(jī)上特殊服務(wù)程序的一種方式,強(qiáng)調(diào)提前在10.0.0.7上對(duì)oldboy用戶授權(quán)。

7、MYSQL基礎(chǔ)安全優(yōu)化

1、啟動(dòng)程序設(shè)置為700,屬主和用戶組為mysql

2、為MYSQL超級(jí)用戶root設(shè)置密碼

3、如果要求嚴(yán)格可以刪除root用戶,創(chuàng)建其他管理用戶,比如admin

4、登錄時(shí)盡量不要在命令行暴露密碼,備份腳本中如果有密碼,設(shè)置為700.屬組為mysql或者root。

5、刪除默認(rèn)存在的test庫。

6、刪除無用的用戶只保留

mysql多實(shí)例的應(yīng)用方法是什么

7、授權(quán)用戶對(duì)應(yīng)的主機(jī)不要用%,權(quán)限不要給all,最小化授權(quán)。從庫只給select。

8、不要一個(gè)用戶管理所有的庫,盡量專庫專用戶

9、清理mysql操作日志文件 ~/.mysql_history

10、phpmyadmin安全

11、mysql服務(wù)器禁止設(shè)置外網(wǎng)IP

12、防SQL注入(WEB),pjp.ini或web開發(fā)插件控件,waf控制。

關(guān)于“mysql多實(shí)例的應(yīng)用方法是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“mysql多實(shí)例的應(yīng)用方法是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標(biāo)題:mysql多實(shí)例的應(yīng)用方法是什么
本文鏈接:http://weahome.cn/article/jdoieh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部