docker+MySQL+讀寫分離

來源:互聯網
上載者:User

標籤:ann   主從複製   特性   mysql   exec   ipad   read_only   docke   文檔   

一、拉取mysql鏡像檔案
docker pull mysql
二、查看鏡像
docker images
三、建立設定檔目錄
mkdir /data/docker/mysql/{master,slave} -pv

四、主從設定檔
主:/data/docker/mysql/master/my.cnf
[mysqld]
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
default-authentication-plugin=mysql_native_password
從:/data/docker/mysql/slave/my.cnf
[mysqld]
server-id=2
skip-slave-start=true
read_only=ON
relay-log=relay-bin
relay-log-index=relay-bin.index
default-authentication-plugin=mysql_native_password

五、啟動主從資料庫的docker執行個體
建立主庫資料檔案目錄
mkdir /data/docker/mysql/master/data
啟動主庫執行個體
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master -v /data/docker/mysql/master/data:/var/lib/mysql -v /data/docker/mysql/master/my.cnf:/etc/my.cnf -p 3306:3306 mysql
建立以後要到容器裡面去修改密碼:否則會報錯,據說是MySQL的新特性:
報錯如下:
ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
進入容器
docker exec -it mysql-master /bin/bash
登入MySQL
mysql -uroot -p123456 -h127.0.0.1
修改密碼
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘fansik‘;


建立從庫資料檔案目錄
mkdir /data/docker/mysql/slave/data
啟動從庫執行個體
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave -v /data/docker/mysql/slave/data:/var/lib/mysql -v /data/docker/mysql/slave/my.cnf:/etc/my.cnf -p 3307:3306 mysql
建立以後要到容器裡面去修改密碼:否則會報錯,據說是MySQL的新特性:
報錯如下:
ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
進入容器
docker exec -it mysql-slave /bin/bash
登入從MySQL
mysql -uroot -p123456 -h127.0.0.1 -P3307
修改密碼
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘fansik‘;

六、配置主從複製
查看兩個容器的ip地址
主庫:
[[email protected] data]# docker inspect 07 |grep ‘IPAddress‘
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",

從庫:
[[email protected] data]# docker inspect 72 |grep ‘IPAddress‘
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.3",
"IPAddress": "172.17.0.3",

1、登入主庫添加複製帳號
MySQL [(none)]> CREATE USER ‘slave‘@‘%‘ IDENTIFIED BY ‘slave‘;
Query OK, 0 rows affected (0.09 sec)

MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO ‘slave‘@‘%‘;
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

2、查看主庫狀態
MySQL [(none)]> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000004 | 1363     |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+

3、配置從庫複製資訊
change master to master_host=‘172.17.0.2‘,master_user=‘slave‘,master_password=‘slave‘,master_log_file=‘master-bin.000004‘,master_log_pos=1363,master_port=3306;

讀寫分離配置,使用中介軟體為amoeba
參考文檔:http://www.cnblogs.com/fansik/p/7168501.html

docker+MySQL+讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.