Mysql主從配置(基于docker)

Mysql主從配置(基于docker)

安裝docker

## 如果安裝了 docker 可以選擇卸載 也可直接使用
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
##安裝必要的系統(tǒng)依賴 
##即使系統(tǒng)已存在該環(huán)境也可以再次運行
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

## 添加軟件源信息  使用阿里下載源 
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
## 更新yum緩存
sudo yum makecache fast
##  安裝高版本 docker-ce
yum -y install docker-ce

啟動Docker

  • 查看狀態(tài) sudo systemctl status docker

    初次安裝成功后默認(rèn)是不會自動啟動 Docker 服務(wù)的,此時查看運行狀態(tài)的輸出結(jié)果不會包括 Active: active (running) 而是 Active: inactive (dead) .
    
  • 首次啟動 sudo systemctl start docker

    安裝后默認(rèn)是沒有啟動 Docker 服務(wù)的,因此安裝后需要先啟動 Docker 服務(wù),再次查看運行狀態(tài) sudo systemctl status docker 應(yīng)該會出現(xiàn)正在運行 Active: active (running) .
    
  • 重新啟動 sudo systemctl restart docker

    如果 Docker 服務(wù)已停止可以重新啟動,如果已經(jīng)啟動也可以重新啟動.
    
  • 停止服務(wù) sudo systemctl stop docker

    如果正在運行的 Docker 存在問題需要停止維修,那么可以先停止 Docker 服務(wù),待維修結(jié)束后可以運行 sudo systemctl start docker 再次啟動服務(wù).
    
  • 檢查自啟 systemctl list-unit-files | grep enabled | grep docker

    檢查 Docker 服務(wù)是否會開機(jī)自啟,如果存在結(jié)果則表示會開機(jī)自啟,如果沒有結(jié)果則表示不會開機(jī)自啟.
    
  • 開機(jī)自啟 sudo systemctl enable docker

    Docker 服務(wù)是非常重要的進(jìn)程服務(wù),一般需要開機(jī)自啟,保證意外關(guān)機(jī)后能自行恢復(fù)服務(wù),推薦開機(jī)自啟.
    
  • 禁止自啟 sudo systemctl disable docker

    如果不小心設(shè)置了開機(jī)自啟而你真的不打算開機(jī)自啟的話,那么可以禁用開機(jī)自啟功能,下次電腦重啟后不會自動啟動Docker 服務(wù).
    
  • 查看版本 docker version

卸載docker

sudo yum remove docker-ce
sudo rm -rf /var/lib/docker

https://my.oschina.net/snowdreams1006/blog/3135995

安裝啟動mysql 5.6

docker pull mysql:5.6:安裝mysql5.6

docker run --name mysql -v /mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD='123456' -d mysql:5.6 :啟動mysql 將配置文件掛載到/mysql/my.cnf

沒有配置 系統(tǒng)默認(rèn)創(chuàng)建文件夾 不是文件,會報錯.

?

開啟主從配置文件

配置主機(jī)

在master上 修改外掛的配置文件 my.cnf

[mysqld]
log-bin=mysql-bin
server-id=196 //同一局域網(wǎng)類必須唯一,一般設(shè)為ip
binlog-ignore-db=mysql //復(fù)制過濾 一般不同步mysql

進(jìn)入docker容器

docker exec -it 容器名 /bin/bash

mysql中創(chuàng)建用戶

grant replication slave on *.* to username@'%' identified by password

%代表所有用戶都可以連,可以換成ip地址增加安全性
username:用戶名
password:密碼

show master status:記錄下==file==和==position==的值

ps:記錄下值后不要繼續(xù)操作master,避免值發(fā)生改變

配置從機(jī)

? 在slave上面修改my.cnf文件

[mysqld]
server-id=129
##開啟二進(jìn)制日志功能,以備salve作為其他slave的master時使用
log-bin=mysql-slave-bin
binlog-ignore-db=mysql
relay_log=mysql-relay-bin

binlog :記錄下所有數(shù)據(jù)的更改,可用于本機(jī)數(shù)據(jù)恢復(fù)和主從同步

relaylog:

mysql主節(jié)點將binlog寫入本地,從節(jié)點定時請求增量binlog,主節(jié)點將binlog同步到從節(jié)點。

從節(jié)點單獨進(jìn)程會將binlog 拷貝至本地 relaylog中。

change master to master_host='192.168.159.128', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2830, master_connect_retry=30;

master_port:mysql主節(jié)點的地址
master_user:主機(jī)中創(chuàng)建的用戶 一般不適用root
master_password:主機(jī)中創(chuàng)建的用戶密碼
master_port:端口號
master_log_file:主機(jī)中記錄下的file值
master_log_pos:主機(jī)中記錄的position值
master_connect_retry:如果連接失敗,重試的時間間隔,單位是s,默認(rèn)60s

start slave:開啟主從

show slave status\G

正常情況下SlaveIORunning和SlaveSQLRunning都是yes

SlaveIORunning為connecting
 檢查連接地址,賬號密碼和文件是否正確
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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