Docker內(nèi)部MySQL如何開啟binlog日志
查看 binlog狀態(tài)
在MySQL終端執(zhí)行一下,Navicat都行
show variables like '%log_bin%'
發(fā)現(xiàn)是沒有開啟binlog
修改Docker的MySQL的my.cnf配置文件
添加下面內(nèi)容
注意:
log-bin = /logs/mysql-bin.log 是Docker內(nèi)部的路徑,不是Linux宿主機的路徑
#設(shè)置日志格式 binlog_format = mixed #設(shè)置日志路徑,注意路經(jīng)需要mysql用戶有權(quán)限寫 log-bin = /logs/mysql-bin.log #設(shè)置binlog清理時間 expire_logs_days = 5 #binlog每個日志文件大小 max_binlog_size = 50m #binlog緩存大小 binlog_cache_size = 4m #最大binlog緩存大小 max_binlog_cache_size = 512m
重啟docker容器重啟失敗發(fā)現(xiàn)報錯信息
docker restart 命令重啟docker之后發(fā)現(xiàn)重啟失敗
查看docker日志:
docker logs 容器id
2021-01-16 07:05:53 0 [Note] mysqld (mysqld 5.6.49-log) starting as process 29 ... mysqld: File '/logs/mysql-bin.index' not found (Errcode: 13 - Permission denied) 2021-01-16 07:05:53 29 [ERROR] Aborting 2021-01-16 07:05:53 29 [Note] Binlog end
上面意思是沒權(quán)限,需要給docker內(nèi)部的這個/logs賦予權(quán)限
開始解決問題
把上面修改binlog的配置還原回來,重啟docker容器,讓docker重啟成功,進入docker容器
命令 : docker exec -it 容器id bash
進入容器之后執(zhí)行:
chown -R mysql:mysql /logs
修改MySQL目錄的用戶和用戶組權(quán)限
修改完了之后退出docker
然后再給修改binlog日志信息,接著重啟docker容器,發(fā)現(xiàn)docker容器啟動成功
驗證一下
連接MySQL執(zhí)行一下
show variables like '%log_bin%'
發(fā)現(xiàn)已經(jīng)開啟binlog
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時控制臺日志出現(xiàn)中文亂碼的問題
這篇文章主要介紹了Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時控制臺日志出現(xiàn)中文亂碼的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-025分鐘教你實現(xiàn)用docker搭建Redis集群模式和哨兵模式
本文主要介紹了5分鐘實現(xiàn)用docker搭建Redis集群模式和哨兵模式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09