一、解壓mysql壓縮包
參考我的另一篇博文,tag.gz解壓完并且配置完環(huán)境變量即可,暫時(shí)不要初始化
linux單機(jī)部署mysql(離線環(huán)境解壓即可)-CSDN博客
二、修改配置文件
可能因?yàn)榘姹静煌?,我的這個(gè)配置可能不是通用的,我安裝的是mysql8.0.34版本。如果我的配置不適用于其他版本,請(qǐng)輸入命令mysqld_multi --example, 參考官方的例子。
配置文件目錄為:/etc/my.cnf? (可能不能更改,目前發(fā)現(xiàn)改了會(huì)報(bào)錯(cuò))
配置內(nèi)容如下:
[mysqld_multi]
mysqld ????= /root/soft/mysql8/bin/mysqld_safe
mysqladmin = /root/soft/mysql8/bin/mysqladmin
user ??????= root
#password ??=?[mysqld2]
socket ????= /tmp/mysql.sock2
port ??????= 3307
datadir ???= /root/soft/mysql8/data2
pid-file ??= /root/soft/mysql8/data2/mysql.pid2
user ??????= root
#一個(gè)實(shí)例占兩個(gè)端口號(hào)。默認(rèn)是3306和33060
mysqlx_port=33070
mysqlx_socket=/tmp/mysqlx.sock2########## 主從復(fù)制主庫配置 start ##########
server-id=1
#設(shè)置需要復(fù)制的數(shù)據(jù)庫
binlog-do-db=db_master_slave
#設(shè)置不要復(fù)制的數(shù)據(jù)庫
binlog-ignore-db=mysql,performance_schema,information_schema,sys
#0表示讀寫,1表示只讀。super-read-only是針對(duì)超級(jí)管理員用戶super-read-only=0
read-only=0
#設(shè)置binlog格式
binlog_format=ROW
########## 主從復(fù)制主庫配置 end ##########[mysqld3]
socket ????= /tmp/mysql.sock3
port ??????= 3308
datadir ???= /root/soft/mysql8/data3
pid-file ??= /root/soft/mysql8/data3/mysql.pid3
user ??????= root
#一個(gè)實(shí)例占兩個(gè)端口號(hào)。默認(rèn)是3306和33060
mysqlx_port=33080
mysqlx_socket=/tmp/mysqlx.sock3########## 主從復(fù)制從庫配置 start ##########
server-id=2
#0表示讀寫,1表示只讀。super-read-only是針對(duì)超級(jí)管理員用戶
super-read-only=1
read-only=1
#開啟中繼日志,從主服務(wù)器上同步日志文件到本地
relay-log=relay-log-bin
#定義中繼日志文件的位置和名稱
relay-log-index=slave-relay-bin.index
########## 主從復(fù)制從庫配置 end ##########
三、數(shù)據(jù)庫初始化
由于我這邊部署的是兩個(gè)實(shí)例,一主一從,3307和3308
mysql的解壓目錄 /root/soft/mysql8
1.準(zhǔn)備目錄
分別準(zhǔn)備3307和3308的data目錄:data2和data3
cd /root/soft/mysql8
rm -r data2 data3
mkdir data2 data3
2.初始化兩個(gè)實(shí)例
mysqld --defaults-file=/etc/my.cnf --basedir=/root/soft/mysql8 --datadir=/root/soft/mysql8/data2 --initialize-insecure
mysqld --defaults-file=/etc/my.cnf --basedir=/root/soft/mysql8 --datadir=/root/soft/mysql8/data3 --initialize-insecure
3.目錄文件賦權(quán)
chmod -R 750 /root/soft/mysql8
四、啟動(dòng)多實(shí)例
1.驗(yàn)證實(shí)例是否配置成功
mysqld_multi report
如果顯示沒有mysql實(shí)例,那么請(qǐng)重新檢查配置文件內(nèi)容,和目錄創(chuàng)建賦權(quán)。
2.啟動(dòng)
mysqld_multi start
3.查看是否成功
mysqld_multi report
如果成功,會(huì)顯示 is running的狀態(tài)。
如果需要查看占用端口號(hào),可輸入命令如下:
ss -tunlp |grep 33
#或者netstat -tunlp |grep 33
如果啟動(dòng)失敗,一般會(huì)出現(xiàn)"xxx pid ended"的錯(cuò)誤信息,一般是配置和目錄的問題。
或者也可以可查看data目錄下默認(rèn)的日志文件[hostname].err,這個(gè)[hostname]是動(dòng)態(tài)值,就是你主機(jī)的hostname。
假如hostname是"10-23-14-11",那么命令如下
tail -111f data2/10-23-14-11.err
tail -111f data3/10-23-14-11.err
五、主從復(fù)制
1.主節(jié)點(diǎn)操作
連接主節(jié)點(diǎn),命令如下:
mysql -uroot -p -P3307 -S /tmp/mysql.sock2
進(jìn)入mysql命令窗口后,輸入命令如下:
--1.創(chuàng)建同步賬戶
create user 'slave1'@'%' identified by '1234';?
grant replication slave on *.* ?to ?'slave1'@'%';
alter user 'slave1'@'%' identified with mysql_native_password by '1234';?
flush privileges;
--2.查看主節(jié)點(diǎn)的binlog文件的名稱和偏移量
show master status;
?
2.從節(jié)點(diǎn)操作
連接從節(jié)點(diǎn),命令如下:
mysql -uroot -p -P3308 -S /tmp/mysql.sock3
進(jìn)入mysql命令窗口后,輸入命令如下:
--1.配置需要復(fù)制的主節(jié)點(diǎn)信息,以及binlog文件的名稱和偏移量(即上面主節(jié)點(diǎn)查看的內(nèi)容)
change master to master_host='127.0.0.1',master_port=3307,master_user='slave1',master_password='1234',master_log_file='binlog.000000',master_log_pos=0;
?--2.在從節(jié)點(diǎn)開啟slave同步,查看同步狀態(tài)
start slave;
show slave status\G;
如果 slave_io_running 和 slave_sql_running都為yes的狀態(tài),說明主從同步成功;如果是no或connecting都表示不成功,配置錯(cuò)誤或連接不上。
3.測(cè)試同步
進(jìn)入主節(jié)點(diǎn)mysql窗口
--1.主節(jié)點(diǎn)創(chuàng)建數(shù)據(jù)庫,并且插入數(shù)據(jù)
--drop database db_master_slave;
--show master status;
create database db_master_slave;
use db_master_slave;
create table test(id bigint primary key);
insert into test values(1);
select * from test;
進(jìn)入從節(jié)點(diǎn)mysql窗口
--2.從節(jié)點(diǎn)查看數(shù)據(jù)庫和插入的數(shù)據(jù)
use db_master_slave;
select * from test;
如果同步錯(cuò)誤,具體問題具體分析,這里不展開。如果是剛開始同步,可嘗試把同步的database或表刪除,然后重新把這一大步再做一遍
4.停止實(shí)例
使用mysqld_multi stop或mysqladmin命令。mysqld_multi stop有時(shí)候會(huì)不成功,具體問題具體分析
mysqld_multi stop
或
mysqladmin -uroot -p -P3307 -S /tmp/mysql.sock2 shutdown
mysqladmin -uroot -p -P3308 -S /tmp/mysql.sock3 shutdown文章來源:http://www.zghlxwxcb.cn/news/detail-823304.html
?如果對(duì)操作步驟依然不清晰,可參考這篇博文 ,圖文較詳細(xì)實(shí)現(xiàn)?Mysql數(shù)據(jù)庫主從復(fù)制搭建與同步_mysql主主同步復(fù)制-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-823304.html
到了這里,關(guān)于linux系統(tǒng)mysql8單機(jī)多實(shí)例+主從復(fù)制部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!