国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

使用Docker容器搭建MySql主從復制

2019-11-02 16:33:43
字體:
供稿:網(wǎng)友

1. 編寫主MySQL的Docker文件

新建文件夾,命名為MySQL-master-v1。在文件夾mysql-master-v1中新建文件Dockerfile和master.cnf。筆者推薦使用的編輯器是Visual Studio Code。利用編輯器將這兩個文件的編碼設置成UTF-8。因為本文介紹安裝到Linux系統(tǒng)下,所以筆者建議讀者把換行符設置成LF,以兼顧Linux操作系統(tǒng)。按照如下內(nèi)容編寫這兩個文件。

Dockerfile

FROM mysql:5.7# set timezone as china/shanghaiRUN cp /usr/share/zoneinfo/PRC /etc/localtime# copy mysql config fileCOPY master.cnf /etc/mysql/conf.d/ENTRYPOINT ["docker-entrypoint.sh"]EXPOSE 3306CMD ["mysqld"]

master.cnf

user=rootpassword='123456'[mysqld]max_allowed_packet=8Mlower_case_table_names=1character_set_server=utf8max_connections=900max_connect_errors=600server-id=1log-bin=mysql-binreplicate-wild-do-table=db1.%replicate-wild-do-table=db2.%slow_query_log=1long_query_time=1log_error

2. 主MySQL的配置文件參數(shù)說明

解釋一下master.cnf。

lower_case_table_names:忽略表名、列名等數(shù)據(jù)結構的大小寫(注意:不是每行記錄內(nèi)容的大小寫!)。

server-id=1: 表示此MySQL服務器是主服務器 。

log-bin:開啟二進制記錄。這是為了主從復制而做的設置。本文使用RBR(Row-Based Replication)模式。

replicate-wild-do-table:規(guī)定有哪些表可以從主服務器復制到從服務器。db1.%是指只要是數(shù)據(jù)庫db1的表,就都可以復制到從服務器上。可以多條設置,來允許多個數(shù)據(jù)庫。

沒有使用replicate-do-db是因為replicate-do-db禁止跨數(shù)據(jù)庫的訪問。比如用戶已經(jīng)使用use db2;選擇了數(shù)據(jù)庫db2,用戶還要執(zhí)行update db1.t_student set c_name='stu_c' where c_id='1234c',那么就不能使用replicate-do-db。在編程的時候雖然程序員不會用到use,但是程序員有可能把連接mysql的url寫成指定某個數(shù)據(jù)庫或沒有指定具體的數(shù)據(jù)庫。即便沒有指定數(shù)據(jù)庫,使用replicate-do-db也是不允許的。

slow_query_log=1:開啟慢查詢?nèi)罩尽H绻骋粭lSQL執(zhí)行的時間超過long_query_time設置的秒數(shù),那么就記錄下來。記錄文件路徑可以使用show variables;命令,在變量名是slow_query_log_file下查找到具體的日志文件路徑。

long_query_time=1:單位是秒。指如果某一條SQL語句執(zhí)行時間超過1秒,就記錄下來。必須開啟慢查詢?nèi)罩玖艘院螅俗兞坎拍苁褂谩?/p>

log_error:開啟錯誤日志。show variables like 'log_error'; 就可以查詢到日志文件的路徑。mysql的Docker官方鏡像如果設置別的取值會導致容器無法正常啟動。

3. 生成并使用主MySQL的鏡像

上傳文件夾mysql-master-v1到Linux服務器上。為了便于說明,用服務器A來指代這臺服務器。筆者的Linux版本是Ubuntu14.04。通過cd命令進入目錄mysql-master-v1。然后輸入以下命令來編譯鏡像:

docker build -t zhangchao/mysql-master5.7:v1 .

注意不要落下行末尾最后一個點。

根據(jù)編譯好的鏡像,生成新的容器:

docker run --name mysql-master /-p 3306:3306 /-v /zc/mysql-master/datadir:/var/lib/mysql /-e MYSQL_ROOT_PASSWORD='123456' -d zhangchao/mysql-master5.7:v1

使用MySQL的客戶端連接MySQL主服務器,筆者使用的是MySQL Workbench。執(zhí)行如下命令:

show master status;

記錄下file和position。這里假設file是mysql-bin.000001,post是154。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 双鸭山市| 赤壁市| 定结县| 铜山县| 千阳县| 和平区| 武隆县| 广灵县| 平邑县| 衡南县| 龙里县| 民乐县| 赤城县| 明星| 开封市| 长子县| 四川省| 马龙县| 定陶县| 兰西县| 华安县| 榆中县| 宁都县| 高清| 峨眉山市| 宁乡县| 同心县| 修水县| 赫章县| 雷州市| 洛扎县| 奇台县| 额济纳旗| 栾城县| 洛南县| 顺昌县| 永靖县| 资溪县| 晴隆县| 子长县| 泊头市|