Mysql開啓bin-log採坑

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啓動日誌,如下:
image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章