一、多實例的應用場景:

1、資金緊張型公司的選擇
當公司業務訪問量不太大,又舍不得花錢,但同時又希望不同業務的數據庫服務各自獨立,而且需要主從同步進行等技術提供備份或讀寫分離服務時,使用多實例是最好不過的。
2、并發訪問不是特別大的業務
當公司業務訪問量不太大,服務器資源基本閑置的比較多,這是就很適合多實例的應用。如果對SQL語句優化的好,多實例是一個很值得使用的技術。即使并發很大,只要合理分配好系統資源,也不會有太大問題。
二、mysql多實例的原理
mysql多實例,簡單的說,就是在一臺服務器上開啟多個不同的mysql服務端口(如3306,3307),運行多個mysql服務進程。這些服務進程通過不同的socket監聽不同的服務端口,來提供各自的服務。
這些mysql實例共用一套mysql安裝程序,使用不同的my.cnf配置文件、啟動程序、數據文件。在提供服務時,mysql多實例在邏輯上看來是各自獨立的,各個實例之間根據配置文件的設定值,來取得服務器的相關硬件資源。
三、多實例部署步驟
在這里數據庫的編譯安裝就不贅述了,如有不清楚的,請參考其他文件。
實驗使用的端口:33064,33065
1、創建數據目錄
創建數據文件存放目錄,并修改文件夾的所屬用戶組
mkdir -p /home/mysqldata/33064
mkdir -p /home/mysqldata/33065
chown mysql.mysql 33064/33065/
2、初始化數據庫:
/usr/bin/mysql_install_db\
--datadir=/home/mysqldata/33064/\
--user=mysql
/usr/bin/mysql_install_db\
--datadir=/home/mysqldata/33065/\
--user=mysql
3、配置/etc/my.cnf配置文件
每一個實例都有一個屬于實例自己的msyqld模塊,模塊中是實例對應的初始化參數,例如[mysqld33064],[mysqld33065]
[root@model /]# cat /etc/my.cnf
[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
user=mysql
password=mysql
[mysqld33064]
datadir=/home/mysqldata/33064
port=33064
socket=/home/mysqldata/33064/mysql33064.sock
user=mysql
symbolic-links=0
default-storage-engine=INNODB
log-bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
## utf8
#default-character-set = utf8
#character_set_connection = utf8
#character_set_results = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET collation_connection =utf8_general_ci '
init_connect = 'SET NAMES utf8'
server-id = 1
[mysqld33065]
datadir=/home/mysqldata/33065
port=33065
socket=/home/mysqldata/33065/mysql33065.sock
user=mysql
symbolic-links=0
default-storage-engine=INNODB
log-bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
## utf8
#default-character-set = utf8
#character_set_connection = utf8
#character_set_results = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET collation_connection =utf8_general_ci '
init_connect = 'SET NAMES utf8'
server-id = 1
[mysqld_safe]
#log=/var/log/mysqldquery.log
## error log
log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
4、多實例的啟動和停止
啟動的時候要用mysqld_multi 命令,而不是mysqld命令,命令通過傳遞不同的端口參數來啟動對應額數據庫實例.
/usr/bin/mysqld_multi --defaults-file=/etc/my.cnf start 33064
/usr/bin/mysqld_multi --defaults-file=/etc/my.cnf start 33065
/usr/bin/mysqld_multi --defaults-file=/etc/my.cnf stop 33064
/usr/bin/mysqld_multi --defaults-file=/etc/my.cnf stop 33065
查看數據庫進程情況,如果有兩個數據庫進程說明數據庫安裝正常,否則失敗,具體原因需要查看log日志來處理。
[root@model mysql]# ps -ef|grep mysql
root 3990 1 0 11:18 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/home/mysqldata/33065 --port=33065 --socket=/home/mysqldata/33065/mysql33065.sock --user=mysql --symbolic-links=0 --default-storage-engine=INNODB --log-bin=mysql-bin --binlog_format=mixed --expire_logs_days=7 --character-set-server=utf8 --collation-server=utf8_general_ci --init_connect=SET collation_connection = utf8_general_ci --init_connect=SET NAMES utf8 --server-id=1
mysql 4132 3990 0 11:18 pts/0 00:00:01 /usr/libexec/mysqld --basedir=/usr --datadir=/home/mysqldata/33065 --user=mysql --symbolic-links=0 --default-storage-engine=INNODB --log-bin=mysql-bin --binlog_format=mixed --expire_logs_days=7 --character-set-server=utf8 --collation-server=utf8_general_ci --init_connect=SET collation_connection = utf8_general_ci --init_connect=SET NAMES utf8 --server-id=1 --log-error=/var/log/mysqld.log --pid-file=/home/mysqldata/33065/model.pid --socket=/home/mysqldata/33065/mysql33065.sock --port=33065
root 4155 1 0 11:18 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/home/mysqldata/33064 --port=33064 --socket=/home/mysqldata/33064/mysql33064.sock --user=mysql --symbolic-links=0 --default-storage-engine=INNODB --log-bin=mysql-bin --binlog_format=mixed --expire_logs_days=7 --character-set-server=utf8 --collation-server=utf8_general_ci --init_connect=SET collation_connection = utf8_general_ci --init_connect=SET NAMES utf8 --server-id=1
mysql 4297 4155 0 11:18 pts/0 00:00:01 /usr/libexec/mysqld --basedir=/usr --datadir=/home/mysqldata/33064 --user=mysql --symbolic-links=0 --default-storage-engine=INNODB --log-bin=mysql-bin --binlog_format=mixed --expire_logs_days=7 --character-set-server=utf8 --collation-server=utf8_general_ci --init_connect=SET collation_connection = utf8_general_ci --init_connect=SET NAMES utf8 --server-id=1 --log-error=/var/log/mysqld.log --pid-file=/home/mysqldata/33064/model.pid --socket=/home/mysqldata/33064/mysql33064.sock --port=33064
5、多實例的連接登錄
mysql -S /home/mysqldata/33064/mysql33064.sock
mysql -S /home/mysqldata/33065/mysql33065.sock
6、賦權限
剛安裝好的數據庫root用戶無localhost登錄權限,所以需要賦權限以后才能通過用戶名和密碼登錄。
mysql -S /home/mysqldata/33064/mysql33064.sock
mysql>grant allon *.* to 'root'@'%' identified by 'root';
mysql>grant allon *.* to 'root'@'localhost' identified by 'root';
mysql> flushprivileges;
7、通過用戶名和密碼登錄
mysql -uroot -proot -S /home/mysqldata/33064/mysql33064.sock
8、多實例修改密碼
修改實例33064的root密碼,使用mysqladmin命令。如下:
mysqladmin -uroot -p password root-S /home/mysqldata/33064/mysql33064.sock
到此我們的mysql多實例部署就已經完成。
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站標題:MYSQL數據庫多實例的安裝配置mysql_multi啟停實戰-創新互聯
當前鏈接:http://www.yijiale78.com/article4/cspeoe.html
成都網站建設公司_創新互聯,為您提供電子商務、商城網站、網站內鏈、域名注冊、網站排名、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯