以往使用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實例進行說明。
[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
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,否則查看資料庫目錄是否有權限。
使用下列參數來啟動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
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中文網其他相關文章!