mysql單機多例項

2022-05-21 08:48:13 字數 2195 閱讀 2944

在資料庫伺服器上,可以架構多個mysql伺服器,進行單機多例項的讀寫分離;

可以通過mysqld_multi來進行多例項的管理,mysqld_multi是用perl寫的指令碼,原理是通過mysql_admin來進行多個資料庫的操作;多例項的配置檔案也有點不同,可以看作是多個mysql配置的集合;mysqld_multi命令使用如下:

mysqld_multi report/start/stop
可以使用 mysqld_multi --example來檢視配置檔案的例子;也可以直接複製下來當作自己的配置;注意備份以前的配置;

mv /etc/my.cnf /etc/my.cnf.bak

mysqld_multi --example > /etc/my.cnf

按自己的需要修改配置檔案,改成多個資料庫;

[mysqld_multi]

mysqld     = /usr/bin/mysqld_safe

mysqladmin = /usr/bin/mysqladmin

user       = multi_admin

password   = my_password

[mysqld1]

socket     = /tmp/mysql1.sock

port       = 3306

pid-file   = /data2/mysql1/mysql.pid

datadir    = /data2/mysql1

[mysqld2]

socket     = /tmp/mysql2.sock

port       = 3307

pid-file   = /data2/mysql2/mysql.pid

datadir    = /data2//mysql2

這裡多出了乙個[mysqld_multi]的配置項,需要在每個資料庫裡配置乙個multi_admin來管理mysql

下面新建資料庫:

mysql_install_db --user=mysql --datadir=/data2/mysql1

mysql_install_db --user=mysql --datadir=/data2/mysql2

啟動mysql伺服器

mysqld_multi start 1,2
這個時候使用 mysqld_report來檢視是否已啟動是會失敗的,因為還沒有新建 multi_admin來查詢狀態;我們可以通過 netstat來檢視埠

# netstat -tulnp | grep mysql

tcp        0      0 :::3306                     :::*                        listen      716784/mysqld

tcp        0      0 :::3307                     :::*                        listen      3669/mysqld

tcp        0      0 :::3317                     :::*                        listen      714503/mysqld

可以看到3306和3307埠已經監聽;同時目錄下生成了相應的.socket檔案; 

下面我們可以連線mysql來配置multi_admin使用者;由於有多個例項,連線需要使用socket連線

mysql -u root -s /tmp/mysql1.sock

grant shutdown on *.* to multi_admin@'localhost' identified by'my_password';

flush privileges;

quit

同樣道理配置另一台3307;

也可以拷貝乙份mysql來建立新的例項,這樣裡面的使用者也會被拷貝。注意目錄許可權必須是mysql , chown -r mysql.mysql /data2/mysql2 

下面可以使用

mysqld_multi --defaults-file=/etc/my.cnf start 啟動全部例項

如果啟動出錯的話,可以到對應目錄下檢視日誌檔案,看**出錯了。

使用mysqld_multi需要手動啟動資料庫,也可以加入開機啟動項: 

echo "mysqld_multi" >>  /etc/rc.local

mysql單機多例項 MYSQL單機多例項

一 建立安裝目錄 mkdir usr local mysql s 5.6.32 mkdir usr local mysql m 5.6.32 wget tar zxv f mysql 5.6.32.tar.gz 二 編譯命令 1 主編引數 cmake dcmake install prefix da...

MySQL 單機多例項

關於mysql 單機多例項的優缺點等介紹具體可以知乎一下或參考mysql單機多例項配置 實現單機多例項可以通過docker輕鬆做到,這裡主要是分享使用自帶工具mysqld multi的過程及兩個坑點 系統 ubuntu 16.04lts xenial 版本 percorna server 5.7.2...

mysql實踐 單機多例項

最近在學習mycat原始碼,有單台雲主機上要跑多個例項的需求,參考了以下的文章 4.修改my.cnf vim usr local mysql etc my.cnf 注釋以下內容 client password your password port 3306 socket tmp mysql.sock...