溫馨提示×

溫馨提示×

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

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

MYSQL數(shù)據(jù)庫多實(shí)例的安裝配置mysql_multi啟停實(shí)戰(zhàn)

發(fā)布時(shí)間:2020-07-18 16:59:37 來源:網(wǎng)絡(luò) 閱讀:560 作者:無言地對白 欄目:數(shù)據(jù)庫

一、多實(shí)例的應(yīng)用場景:

1、資金緊張型公司的選擇

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

2、并發(fā)訪問不是特別大的業(yè)務(wù)

當(dāng)公司業(yè)務(wù)訪問量不太大,服務(wù)器資源基本閑置的比較多,這是就很適合多實(shí)例的應(yīng)用。如果對SQL語句優(yōu)化的好,多實(shí)例是一個(gè)很值得使用的技術(shù)。即使并發(fā)很大,只要合理分配好系統(tǒng)資源,也不會(huì)有太大問題。

二、mysql多實(shí)例的原理


mysql多實(shí)例,簡單的說,就是在一臺(tái)服務(wù)器上開啟多個(gè)不同的mysql服務(wù)端口(如3306,3307),運(yùn)行多個(gè)mysql服務(wù)進(jìn)程。這些服務(wù)進(jìn)程通過不同的socket監(jiān)聽不同的服務(wù)端口,來提供各自的服務(wù)。

這些mysql實(shí)例共用一套mysql安裝程序,使用不同的my.cnf配置文件、啟動(dòng)程序、數(shù)據(jù)文件。在提供服務(wù)時(shí),mysql多實(shí)例在邏輯上看來是各自獨(dú)立的,各個(gè)實(shí)例之間根據(jù)配置文件的設(shè)定值,來取得服務(wù)器的相關(guān)硬件資源。


三、多實(shí)例部署步驟

在這里數(shù)據(jù)庫的編譯安裝就不贅述了,如有不清楚的,請參考其他文件。

實(shí)驗(yàn)使用的端口:33064,33065


1、創(chuàng)建數(shù)據(jù)目錄

創(chuàng)建數(shù)據(jù)文件存放目錄,并修改文件夾的所屬用戶組

mkdir -p /home/mysqldata/33064

mkdir -p /home/mysqldata/33065

chown mysql.mysql 33064/33065/

2、初始化數(shù)據(jù)庫:


/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配置文件

每一個(gè)實(shí)例都有一個(gè)屬于實(shí)例自己的msyqld模塊,模塊中是實(shí)例對應(yīng)的初始化參數(shù),例如[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、多實(shí)例的啟動(dòng)和停止

啟動(dòng)的時(shí)候要用mysqld_multi 命令,而不是mysqld命令,命令通過傳遞不同的端口參數(shù)來啟動(dòng)對應(yīng)額數(shù)據(jù)庫實(shí)例.

/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

查看數(shù)據(jù)庫進(jìn)程情況,如果有兩個(gè)數(shù)據(jù)庫進(jìn)程說明數(shù)據(jù)庫安裝正常,否則失敗,具體原因需要查看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、多實(shí)例的連接登錄


mysql -S /home/mysqldata/33064/mysql33064.sock

mysql -S /home/mysqldata/33065/mysql33065.sock


6、賦權(quán)限

剛安裝好的數(shù)據(jù)庫root用戶無localhost登錄權(quán)限,所以需要賦權(quán)限以后才能通過用戶名和密碼登錄。

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、多實(shí)例修改密碼

修改實(shí)例33064的root密碼,使用mysqladmin命令。如下:

mysqladmin -uroot -p password root-S /home/mysqldata/33064/mysql33064.sock


到此我們的mysql多實(shí)例部署就已經(jīng)完成。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI