實(shí)踐:mysql單機(jī)多實(shí)例部署(mac)

背景:在自己電腦搭建或測(cè)試分布式服務(wù)框架時(shí),經(jīng)常會(huì)用多個(gè)數(shù)據(jù)庫(kù)實(shí)例模擬多個(gè)環(huán)境的情況,因此我把搭建多實(shí)例mysql的過(guò)程記錄下來(lái),方便互相學(xué)習(xí)和溝通。

1.搭建環(huán)境

1) mac 電腦,版本?10.15.6

2) mysql版本??8.0.20

官網(wǎng)下載:https://downloads.mysql.com/archives/community/

2.搭建過(guò)程如下

2.1 步驟

1) 官網(wǎng)下載mysql安裝tar包,注意dmg不行

mysql-8.0.20-macos10.15-x86_64.tar.gz

2)解壓及創(chuàng)建mysql包路徑


```

tar-xfv mysql-8.0.20-macos10.15-x86_64.tar.gz

?cp -rf mysql-8.0.20-macos10.15-x86_64/*? /usr/local/mysql8.0/

```


3)創(chuàng)建mysql數(shù)據(jù)文件存放路徑

mkdir -p??/usr/local/mysql8.0/{3306,3307,3308,3309}/data

##授權(quán)用戶(hù)組mysql的權(quán)限

chown -R mysql:mysql??/usr/local/mysql8.0

##創(chuàng)建日志文件

touch /usr/local/mysql8.0/mysqld_multi.log

4)編輯腳本?my.cnf

vim /etc/my.cnf

###文件內(nèi)容如下


[mysqld]

user=mysql

basedir =/usr/local/mysql8.0

datadir=/usr/local/mysql8.0/data

[mysqld_multi]

mysqld=/usr/local/mysql8.0/bin/mysqld_safe

mysqladmin=/usr/local/mysql8.0/bin/mysqladmin

log=/usr/local/mysql8.0/mysqld_multi.log

[mysqld3306]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/usr/local/mysql8.0/3303/data

port=3306

user=mysql

server_id=3306

socket=/tmp/mysql_3306.sock

log-error =/usr/local/mysql8.0/3306/error_3306.log

[mysqld3307]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/usr/local/mysql8.0/3307/data

port=3307

user=mysql

server_id=3307

socket=/tmp/mysql_3307.sock

log-error =/usr/local/mysql8.0/3307/error_3307.log

[mysqld3308]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/usr/local/mysql8.0/3308/data

port=3308

user=mysql

server_id=3308

socket=/tmp/mysql_3308.sock

log-error =/usr/local/mysql8.0/3308/error_3308.log

[mysqld3309]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/usr/local/mysql8.0/3309/data

port=3309

user=mysql

server_id=3309

socket=/tmp/mysql_3309.sock

log-error =/usr/local/mysql8.0/3309/error_3309.log

5)分別初始化3306、3307、3308、3309端口,注意,初始化實(shí)例的最后一行記錄了root的初始密碼

/usr/local/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql8.0/3307/data

/usr/local/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql8.0/3308/data

/usr/local/mysql8.0/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql8.0/3309/data



6)設(shè)置環(huán)境變量

vim ~/.bash_profile

##添加如下配置

export PATH=/usr/local/mysql/bin:$PATH

##生效配置

source??~/.bash_profile

7) mysql命令創(chuàng)建別名,不然后面這三個(gè)命令識(shí)別不出來(lái) 會(huì)報(bào)錯(cuò)

alias mysqld=/usr/local/mysql8.0/bin/mysqld

alias mysqld_multi=/usr/local/mysql8.0/bin/mysqld_multi

alias mysqladmin=/usr/local/mysql8/bin/mysqladmin

8) 啟動(dòng)實(shí)例

mysqld_multi --defaults-extra-file=/etc/my.cnf --log=/usr/local/mysql8.0/mysqld_multi.log --user=mysql start 3306

mysqld_multi --defaults-extra-file=/etc/my.cnf? --log=/usr/local/mysql8.0/mysqld_multi.log --user=mysql? start 3307

mysqld_multi --defaults-extra-file=/etc/my.cnf? --log=/usr/local/mysql8.0/mysqld_multi.log --user=mysql? start 3308

mysqld_multi --defaults-extra-file=/etc/my.cnf? --log=/usr/local/mysql8.0/mysqld_multi.log --user=mysql? start 3309

9)驗(yàn)證實(shí)例

mysqld_multi --defaults-extra-file=/etc/my.cnf report


2.2 修改密碼

詳見(jiàn):

https://blog.csdn.net/lkr_lkr/article/details/105931513

##先登錄

mysql -u root -p -S /tmp/mysql_3307.sock

##修改密碼

ALTER USER USER() IDENTIFIED BY '123456';

exit;

##驗(yàn)證

附錄圖:


2.3 客戶(hù)端連接問(wèn)題

1.出現(xiàn)Authentication plugin 'caching_sha2_password' 錯(cuò)誤時(shí),是因登錄密碼級(jí)別設(shè)置的高了。


2.解決方法:

1)管理員權(quán)限運(yùn)行命令提示符,登陸MySQL

2)修改賬戶(hù)密碼加密規(guī)則并更新用戶(hù)密碼

? ?ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;? ?#修改加密規(guī)則?

? ?ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';? ?#更新一下用戶(hù)的密碼?

3)刷新權(quán)限并重置密碼

? ?FLUSH PRIVILEGES;? ?#刷新權(quán)限?

? alter user 'root'@'localhost' identified by '123456'; #再重置下密碼

4)現(xiàn)在再次打開(kāi)Navicat Premium 12連接MySQL問(wèn)題數(shù)據(jù)庫(kù)就會(huì)發(fā)現(xiàn)可以連接成功了

詳見(jiàn):https://blog.csdn.net/u011182575/article/details/80821418

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容