編碼的世界 / 優質文選 / 歷史

Mysql開啟bin-log采坑


2021年11月30日
-   

Mysql開啟bin-log采坑
問題
目前項目用到的Mysql版本基本上都在5.7以上了,筆者的Mysql在docker環境下部署的,為了學習bin-log,根據網上資料進行配置,發現無法開啟bin-log。
配置
docker-compose配置
version: "3.7"
services:
mysql:
image: mysql:5.7
container_name: mysql
command: mysqld character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 12345678 #設置root帳號密碼
ports:
- 3306:3306
volumes:
- /opt/docker/mysql/data/db:/var/lib/mysql #數據文件掛載
- /opt/docker/mysql/data/conf:/etc/mysql/conf.d #配置文件掛載
- /opt/docker/mysql/log:/var/log/mysql #日志文件掛載
- /opt/docker/mysql/tmp:/tmp #臨時文件
- /opt/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf #配置

my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#binlog
log-bin =/var/log/mysql/mysql-bin
server-id= 1

原因
網上有說應該是log_bin而不是log-bin,筆者沒有深究,log-bin在linux下是沒有錯的。因為在docker掛在宿主機磁盤路徑時,經常會出現權限不夠,導致服務無法啟動,因此筆者習慣上將掛載的文件或文件夾賦予777的權限,但是my.cnf如果是777權限,MySQL服務會忽略此文件,賦予755權限其實就好了。這個坑也不是第一次遇到了,希望謹記。使用docker logs mysql命令查看MySQL啟動日志,如下:

熱門文章