2-1? ? ? ? ????創(chuàng)建多實(shí)例目錄
mkdir -p? /data/330{7,8,9}/data
2-2? ? ? ? ? ? 創(chuàng)建配置文件
cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF
cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF
cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/app/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF
2-3? ? ? ? ? 初始化數(shù)據(jù)庫(kù)
mv? ?/etc/my.cnf/? ?etc/my.cnf.bak
mysqld? --initialize-insecure? ?--user=mysql? --datadir=/data/3307/data? --basedir=/app/mysql
mysqld? --initialize-insecure? --user=mysql? ?--datadir=/data/3308/data? --basedir=/app/mysql
mysqld? --initialize-insecure? --user=mysql? ?--datadir=/data/3309/data? --basedir=/app/mysql
注意:
初始化之前首先要將原有數(shù)據(jù)庫(kù)配置文件改名嗤无,否則系統(tǒng)會(huì)默認(rèn)走原數(shù)據(jù)庫(kù)文件
多實(shí)例安裝完成之后,再恢復(fù)原文件名蹬音,否則原數(shù)據(jù)庫(kù)無(wú)法使用
檢查文件配置情況
2-4? ? ? ? systemctl管理
cd /etc/systemd/system
cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service
vim mysqld3307.service
ExecStart=/app/mysql/bin/mysqld? --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
ExecStart=/app/mysql/bin/mysqld? --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/app/mysql/bin/mysqld? --defaults-file=/data/3309/my.cnf
注意:
直接看這一章的小伙伴可能沒(méi)有mysql.service文件坦报,此文件在上一章中創(chuàng)建库说。
ExecStart是在原文件基礎(chǔ)上修改ExecStart行,給多實(shí)例啟動(dòng)添加配置文件路徑片择。
檢查? ?ls? /etc/systemd/system
檢查? vim mysqld3307.service
2-5?? ? ????授權(quán)
chown-R mysql.mysql/data/*
2-6? ? ? ? 啟動(dòng)
mv /etc/my.cnf.bak /etc/my.cnf? ? ? ? ? ? ? ? //恢復(fù)3306配置文件
systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309
2-7? ? ? ? ? ? 驗(yàn)證
netstat? -lnp |? grep330
或登錄后查看port?
2-8? ? ? ? ? ? 小技巧
2-8-1? ? 多實(shí)例下怎樣登錄不同的數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)有兩種登錄方式潜的,本地socket,遠(yuǎn)程tcp字管,在多實(shí)例情況下,
需要指明登錄的使用的sock啰挪,默認(rèn)會(huì)走/tmp下的sock,? 即
mysql? ?-uroot? -p? ? ?//????會(huì)走/tmp/mysql.sock,此處為3306
mysql? -uroot? -p? -S /data/3307/mysql.sock? ?-P3307? ? ?//指定才能登錄3307,-P可以省略
當(dāng)?shù)卿浀綌?shù)據(jù)庫(kù)之后嘲叔,可以用? ? ?select @@port;? ? 確認(rèn)自己現(xiàn)在所在的數(shù)據(jù)庫(kù)
2-8-2? ? ? ? 錯(cuò)誤聲明