中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql5.5中怎么實現多實例部署

發布時間:2021-07-26 16:43:29 來源:億速云 閱讀:112 作者:Leah 欄目:數據庫

這期內容當中小編將會給大家帶來有關mysql5.5中怎么實現多實例部署,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、mysql多實例的原理

mysql多實例,簡單的說,就是在一臺服務器上開啟多個不同的mysql服務端口(如3306,3307),運行多個mysql服務進程。這些服務進程通過不同的socket監聽不同的服務端口,來提供各自的服務。

這些mysql實例共用一套mysql安裝程序,使用不同的my.cnf配置文件、啟動程序、數據文件。在提供服務時,mysql多實例在邏輯上看來是各自獨立的,各個實例之間根據配置文件的設定值,來取得服務器的相關硬件資源。

二、mysql多實例的特點

2.1 有效的利用服務器資源

當單個服務器資源有剩余時,可以充分利用剩余的服務器資源來提供更多的服務。

2.2 節約服務器資源

當公司資金緊張,但是數據庫需要各自提供獨立服務,而且需要主從同步等技術時,使用多實例就最好了。

2.3 出現資源互相搶占問題

當某個實例服務并發很高或者有慢查詢時,會消耗服務器更多的內存、CPU、磁盤IO等資源,這時就會導致服務器上的其它實例提供訪問的質量下降,出現服務器資源互相搶占的現象。

三、mysql多實例應用場景

3.1 資金緊張型公司的選擇

當公司業務訪問量不太大,又舍不得花錢,但同時又希望不同業務的數據庫服務各自獨立,而且需要主從同步進行等技術提供備份或讀寫分離服務時,使用多實例是最好不過的。

3.2 并發訪問不是特別大的業務

當公司業務訪問量不太大,服務器資源基本閑置的比較多,這是就很適合多實例的應用。如果對SQL語句優化的好,多實例是一個很值得使用的技術。即使并發很大,只要合理分配好系統資源,也不會有太大問題。

四、mysql5.5多實例部署方法

4.1 mysql5.5多實例部署方法

mysql5.5多實例部署方法一個是通過多個配置文件啟動多個不同進程的方法,第二個是使用官方自帶的mysqld_multi來實現。

第一種方法我們可以把各個實例的配置文件分開,管理比較方便。第二種方法就是把多個實例都放到一個配置文件中,這個管理不是很方便。所以在此我們選擇第一種方法,而且以下實驗我們全部是在此方法下進行的。

4.2 mysql5.5的安裝及配置

要配置mysql5.5多實例,我們首先要安裝mysql5.5,有關mysql5.5的安裝可以查看《爛泥:mysql5.5數據庫cmake源碼編譯安裝》這篇文章。

mysql5.5安裝完畢后,我們不要啟動mysql,因為此時mysql是單實例的。

4.3 創建mysql多實例的數據目錄

現在我們來創建mysql5.5多實例的數據目錄,在此我們創建兩個mysql實例3306和3307。創建各自的數據目錄,如下:

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

tree -L 2 /data/

mysql5.5中怎么實現多實例部署

4.4 修改mysql5.5多實例my.cnf文件

實例3306和3307的數據目錄創建完畢后,我們來配置實例3306與3307的my.cnf配置文件。

復制mysql5.5安裝目錄support-files下的my-medium.cnf為my.cnf,并把內容修改為下。現在以3306這個實例為例,如下:

[client]

port = 3306

socket = /data/3306/mysql.sock

[mysqld]

port = 3306

socket = /data/3306/mysql.sock

basedir = /usr/local/mysql

datadir = /data/3306/data

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

skip-name-resolve

log-bin=mysql-bin

binlog_format=mixed

max_binlog_size = 500M

server-id = 1

[mysqld_safe]

log-error=/data/3306/ilanni.err

pid-file=/data/3306/ilanni.pid

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

mysql5.5中怎么實現多實例部署

注意圖中***標記出來的部分,就是我們主要修改的,其他默認保持不變。

以上是實例3306的my.cnf配置文件,現在我們來配置實例3307的my.cnf。實例3307的配置文件my.cnf我們直接復制實例3306的my.cnf文件,然后通過sed命令把該文件中的3306修改為3307即可。如下:

cp /data/3306/my.cnf /data/3307/my.cnf

sed -i 's/3306/3307/g' /data/3307/my.cnf

或者

sed -e 's/3306/3307/g' /data/3306/my.cnf >/data/3307/my.cnf

mysql5.5中怎么實現多實例部署

4.5 初始化mysql多實例

實例3306和3307的my.cnf配置文件修改完畢后,我們需要來初始化這兩個實例,使用mysql_install_db命令。如下:

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql

注意mysql5.5的mysql_install_db在mysql5.5的/usr/local/mysql/scripts/mysql_install_db目錄下。

mysql5.5中怎么實現多實例部署

mysql5.5中怎么實現多實例部署

查看實例初始化后的情況,如下:

tree -L 3 /data/

mysql5.5中怎么實現多實例部署

通過上圖我們可以看到mysql實例在初始化后會創建基本的數據庫。

現在再來看看初始化創建文件的屬性,如下:

mysql5.5中怎么實現多實例部署

通過上圖可以看到初始化創建的文件都是屬于mysql這個用戶的。

為什么會是這樣呢?

這個是因為我們初始化加入--user=mysql這個選項。當然這個也是我們所需要的,因為這增加了mysql的安全性。

4.6 修改mysql實例的數據庫目錄權限

mysql實例初始化完畢后,我們現在把實例3306和實例3307的數據目錄權限重新賦予給mysql用戶。如下:

chown -R mysql:mysql /data/3306

chown -R mysql:mysql /data/3307

mysql5.5中怎么實現多實例部署

這個地方建議一定要操作一遍,否則在啟動mysql實例時,會提示出錯。導致mysql實例無法啟動。

4.7 啟動mysql5.5多實例

我們現在來啟動實例。使用如下命令:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf &

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf &

ps aux |grep mysqld

mysql5.5中怎么實現多實例部署

通過上圖,我們可以看到實例3306和3307 都已經正常啟動。也說明我們的mysql5.5多實例已經配置成功。

其實單實例mysql的啟動也是通過mysqld_safe命令來啟動。它默認會加載/etc/my.cnf文件。

4.8 登錄mysql5.5多實例

登錄多實例數據庫時,我們需要加入該實例的socket文件,才能正常登錄。現在以3306實例為例。

本地登錄3306實例,如下:

mysql -uroot -p -S /data/3306/mysql.sock

mysql5.5中怎么實現多實例部署

本地登錄進去后,我們在實例3306上創建一個ilanni3306的數據庫。如下:

create database ilanni3306;

show databases;

mysql5.5中怎么實現多實例部署

現在我們遠程登錄實例3306,并查看剛剛新建的數據庫。如下:

mysql -h292.168.1.213 -uroot -p -S /data/3306/mysql.sock

mysql5.5中怎么實現多實例部署

或者:mysql -h292.168.1.213 -uroot -p –P
3306

mysql5.5中怎么實現多實例部署

通過上圖,我們可以看到遠程也是可以連接3306實例的。

4.9 修改mysql5.5多實例root密碼

修改實例3306的root密碼,使用mysqladmin命令。如下:

mysqladmin -uroot -p password 123456 -S /data/3306/mysql.sock

mysql5.5中怎么實現多實例部署

上述就是小編為大家分享的mysql5.5中怎么實現多實例部署了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹿泉市| 卓尼县| 富平县| 大埔区| 二连浩特市| 安新县| 文水县| 华宁县| 平舆县| 刚察县| 桦甸市| 五指山市| 独山县| 介休市| 鄂州市| 蒲城县| 楚雄市| 宾川县| 华坪县| 肥乡县| 南通市| 奉贤区| 固原市| 日土县| 申扎县| 慈利县| 卢湾区| 阳原县| 阳城县| 博兴县| 凉山| 龙门县| 海城市| 武隆县| 大庆市| 凤山市| 无棣县| 吴忠市| 南乐县| 南木林县| 唐山市|