首頁 >資料庫 >mysql教程 >Linux利用mysqld_multi單機啟動多個MySQL實例

Linux利用mysqld_multi單機啟動多個MySQL實例

黄舟
黄舟原創
2017-03-10 11:13:231025瀏覽

一、背景說明

        以往使用mysql時用的多的是只使用一個mysql schema,或是多個schema,但一般都是在同一個資料庫實例中的,也就是同一個連接埠的。
        mysql雙機雙向熱備份中,機器甲上的myql schema(暫稱為A)需要作為熱備份(mysql replication)中的master節點,備份的mysql schema(暫稱為B)則存在另一台機器乙上。那麼雙向熱備中B也需要配置為master,A則配置為slave,說白了就是配置了兩遍熱備份,好,到這裡機器甲的熱備已經搞定了,再輪到乙。我們說到機器乙上也有一個mysql schema(C),也要配置為master,並且備份schema放在機器甲上,但問題來了:備份的mysql schema(B)剛才在配置熱備時已經將mysql連接埠號碼與master 的角色綁定了,此時若配置C為master會將先前配置B為master的操作覆蓋掉;然後在機器甲上配置C的備份資料庫(D)為master時,又會將配置A為master的操作覆蓋了。
        那麼在此過程中,配置schema A 和B的雙向熱備分別在兩台機器上的預設連接埠3306上完成,而配置schema C和D的雙向熱備時,則需要分別在兩台機器上不同的mysql實例中完成(連接埠號碼不同),下面對啟動多個mysql實例進行說明。

二、實作步驟

(1)預設mysql已經安裝完成,基本設定已經實現。

(2)配置my.cnf (僅寫出本文相關的配置)

[mysqld_multi]

mysqld = /opt/mysql/server-5.6/bin/mysqld_safe #根据自己的mysql目录配置
mysqladmin = /opt/mysql/server-5.6/bin/mysqladmin

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3307
log-bin=mysql1-9003-bin
user=cloud1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3308
log-bin=mysql2-9003-bin
user=cloud1

(3)初始化資料庫目錄(根據配置中目錄指向)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1
cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3308 --user=cloud1

初始話成功,會提示OK,否則查看資料庫目錄是否有權限。

(4)啟動實例

使用下列參數來啟動mysqld_multi: (註:此指令在mysql的bin目錄中 ) 。

 mysqld_multi [options] [GNR[,GNR]...]

start,stop和report是指你想到要執行的操作。你可以在單獨的服務或是多服務上指定一個操作,區別於選項後面的GNR清單。如果沒有指定GNR列表,那麼mysqld_multi將在所有的服務中根據選項檔案進行操作。
每一個GNR的值是群組的序號或是一組的序號範圍。此項的值必須是群組名字最後的數字,例如說如果群組名為mysqld17,那麼此項的值則為 17。如果指定一個範圍,使用"-"(破折號)來連接二個數字。如GNR的值為10-13,則指組mysqld10到組mysqld13。

mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1-2
或者
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 2

(5)修改密碼,登陸

mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock1 password  //刚开始默认没有密码,如果要输入密码,直接回车
mysql -u root -p -P 3307 -S /tmp/mysql.sock1

以上是Linux利用mysqld_multi單機啟動多個MySQL實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn