mysql connect by_Mysql主从库搭建
點(diǎn)擊上方藍(lán)字關(guān)注我們!
基于Docker的Mysql主從復(fù)制搭建
首先安裝docker
拉取mysql鏡像:5.7版本
啟動(dòng)主從數(shù)據(jù)庫(kù)容器
docker run -p 3340:3306 --name Slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 # Slave(從庫(kù))
啟動(dòng)后用可用數(shù)據(jù)庫(kù)軟件測(cè)試一下是否連通。
配置Master
Master配置文件修改
apt-get update #更新安裝源
apt-get install -y vim #安裝vim
vim /etc/mysql/my.cnf #編輯my.cnf配置文件
[mysqld]
## 同一局域網(wǎng)內(nèi)注意要唯一
server-id=100
## 開(kāi)啟二進(jìn)制日志功能,可以隨便取(關(guān)鍵)
log-bin=mysql-bin
? ? 2. 重啟mysql容器。
? ?3. 進(jìn)入主庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)同步用戶,并授予REPLICATION SLAVE權(quán)限和REPLICATION CLIENT權(quán)限,用于主從之間同步數(shù)據(jù)。
docker exec -it 主庫(kù)容器名 /bin/bash # 進(jìn)入主庫(kù)dockermysql -uroot帳號(hào) -p用戶密碼 # 登錄入mysql
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; #創(chuàng)建用戶名“slave”,密碼“123456”的數(shù)據(jù)庫(kù)用戶。
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; #授予用戶 slave REPLICATION SLAVE權(quán)限和REPLICATION CLIENT權(quán)限
????4.?查看File、Position字段值,并記錄下來(lái)
show master status;+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 617 | | | |
+------------------+----------+--------------+------------------+-------------------+
配置Slave
Slave配置文件修改
apt-get update
apt-get install -y vim
vim /etc/mysql/my.cnf
[mysqld]
## 設(shè)置server_id,注意要唯一
server-id=101
## 開(kāi)啟二進(jìn)制日志功能,以備Slave作為其它Slave的Master時(shí)使用
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin
????2. 重啟mysql服務(wù)跟docker容器
??? 3. 進(jìn)入Slave數(shù)據(jù)庫(kù),執(zhí)行主從同步命令;
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 617, master_connect_retry=30; # master_host='docker獨(dú)立ip' ;master_user='主庫(kù)創(chuàng)建的同步帳號(hào)';master_password='同步帳號(hào)密碼';master_port=mysql主庫(kù)端口;master_log_file='主庫(kù)File字段名';master_log_pos= Position字段;master_connect_retry=重連時(shí)間
show slave status \G; #查看主從同步狀態(tài)
start slave #啟動(dòng)主從同步功能
SlaveIORunning 和 SlaveSQLRunning 都是Yes,說(shuō)明主從復(fù)制已經(jīng)開(kāi)啟。此時(shí)可以測(cè)試數(shù)據(jù)同步是否成功。
進(jìn)階
創(chuàng)建主庫(kù)
??? 2. 創(chuàng)建從庫(kù)
docker run -itd -p 3309:3306 --name slave -v /slave/var/mysql:/var/lib/mysql -v /slave/conf/:/etc/mysql/ -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7注意:因數(shù)據(jù)庫(kù)版本不同,所有些并不會(huì)立即啟動(dòng),需寫配置文件才可啟動(dòng)。5.7經(jīng)測(cè)試會(huì)立即啟動(dòng)。
????3. 主從配置文件夾中創(chuàng)建配置文件 my.cnf。
#主庫(kù)配置如下:cd /master/conf/
touch my.cnf
vim my.cnf
[mysqld]
lower_case_table_names=1
wait_timeout=30
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet= 1024M
group_concat_max_len = 1024M
thread_cache_size=64
max_connections=160000 #設(shè)置最大的連接數(shù)
server-id=1001 ##設(shè)置server_id,注意要唯一
transaction-isolation = READ-COMMITTED
auto-increment-increment = 1
auto-increment-offset = 1
slave-skip-errors = all #忽略一些錯(cuò)誤
binlog-ignore-db=mysql
binlog-ignore-db=test1 #不同步給從庫(kù)的庫(kù)test1
log-bin = mysql-bin #開(kāi)啟二進(jìn)制日志功能,以備Slave作為其它Slave的Master時(shí)使用
binlog-do-db=test #需要復(fù)制給從庫(kù)的庫(kù)
!includedir /etc/mysql/ #***主要:此路徑是docker內(nèi)的配置文件放置路徑,也就是剛剛啟動(dòng)映射的配置文件路徑
# 從庫(kù)配置如下:
[mysqld]
lower_case_table_names=1
wait_timeout=30
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet= 1024M
group_concat_max_len = 1024M
thread_cache_size=64
max_connections=10000
server-id=1002
replicate-do-db=test #從庫(kù)需要復(fù)制的庫(kù)
replicate-ignore-db=test1 #從庫(kù)需要忽略同步的庫(kù)
log-slave-updates #一主多從必寫的配置
log-bin = mysql-bin #開(kāi)啟二進(jìn)制日志功能,以備Slave作為其它Slave的Master時(shí)使用
auto-increment-increment = 1
auto-increment-offset = 1
slave-skip-errors = all
slave-net-timeout=60 #這是slave60秒超時(shí)會(huì)重連
!includedir /etc/mysql/
????4. 重新啟動(dòng)主從庫(kù)
docker restart masterdocker restart slave
??? 5. 接下來(lái)主從庫(kù)操作可參考入門步驟3,大同。
參考連接
點(diǎn)擊原文前往我的博客查看參考鏈接
- End -
如有幫助到您
掃一掃不迷路
微信新三連
分享、點(diǎn)贊、點(diǎn)在看
????????
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql connect by_Mysql主从库搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 用ram实现寄存器堆_Verilog如何
- 下一篇: 组件kdsvrmgr无法正常工作_汽轮机