1)從docker官方下拉mysql的image
開啟搜尋mysql
在docker中執行 預設tag為latest
docker pull mysql/mysql-server
也可以指定mysql版本
docker pull mysql/mysql-server:5.7
2)設定目錄 為了使mysql的資料保持在宿主機上,
我們先建立幾個目錄。
mkdir -pv /mysql/data
建立主伺服器的配置目錄
mkdir -pv /mysql/101
建立從伺服器的配置目錄
mkdir -pv /mysql/102
3)設定主從伺服器配置
vi /mysql/101/101.cnf
[mysqld]vi /mysql/102/102.cnflog-bin=mysql-bin
server-id=101
[mysqld]3)建立主從伺服器容器log-bin=mysql-bin
server-id=102
docker create --name mysqlsrv101 -v /home/docker/mysql/data/mysql101:/var/lib/mysql -v /home/docker/mysql/101:/etc/mysql/conf.d -e mysql_root_password=123456 -p 3306:3306 mysql:5.7啟動容器docker create --name mysqlsrv102 -v /home/docker/mysql/data/mysql102:/var/lib/mysql -v /home/docker/mysql/102:/etc/mysql/conf.d -e mysql_root_password=123456 -p 3316:3306 mysql:5.7
docker start mysqlsrv101
docker start mysqlsrv102
4)登入主伺服器的mysql,查詢master的狀態
主庫建立使用者
set sql_mode=(select replace(@@sql_mode,'only_full_group_by',''));5)登入從伺服器的mysql,設定與主伺服器相關的配置引數grant replication sl**e on *.* to 'backup'@'%' identified by '123456';
set sql_mode=(select replace(@@sql_mode,'only_full_group_by',''));啟動服務change master to master_host='192.168.56.101',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2500;
master_host為docker的位址不能寫127.0.0.1
master_user是在主庫建立的使用者
master_log_pos是主庫show master status;查詢出的position
start sl**e;檢視服務狀態
waiting for master to send event 就是成功了
connecting to master 多半是連線不通
之後主庫的修改都能同步到從庫了
MySql主從資料同步的執行過程
從庫驗證並連線到主庫 從庫會建立乙個io執行緒和乙個sql執行緒 然後請求io執行緒連線到主庫 同時主庫會新建乙個執行緒用來給從庫傳日誌 從庫的io執行緒請求主庫的二進位制日誌和上次更新位置 並將得到的二進位制日誌寫到從庫的中繼日誌中 從庫的sql執行緒會通過獲取的位置索引讀取新的二進位制日誌 並解...
mysql 主從維護 MYSQL主從的維護
分類 mysql postgresql 1.m上把事件從二進位制日誌中過濾 引數 binlog do db binlog ignore db 2.s上事件從中繼日誌中過濾 引數 replicate do db replicte do table repicate ingore db repliaca...
docker初識 執行mysql例項
移除舊版本docker yum remove docker docker common docker selinux docker engine 設定docker倉庫 2.1 安裝所需要的包 2.2 設定新增穩定版的docker倉庫 yum config manager add repo 安裝 do...