mysql - 如何启用 MySQL 二进制日志记录?

标签 mysql ubuntu mysql-event

我尝试使用 simple example of mysql-events package但是当我尝试使用它时,出现了这个错误:

Error: ER_NO_BINARY_LOGGING: You are not using binary logging

所以我改变了my.cnf:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

#what i added:
log_bin = "/home/erfan/salone-entezar/server/"


!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

但是当我尝试重新启动 mysql(使用 $ sudo service mysql restart)时,发生了这个错误:

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

这是systemctl status mysql.service:

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code) since Fri 2016-11-18 20:16:48 IRST; 3s ago
  Process: 8838 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 8831 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 8838 (code=exited, status=1/FAILURE); Control PID: 8839 (mysql-systemd-s)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/mysql.service
           └─control
             ├─8839 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─8850 sleep 1

Nov 18 20:16:48 erfan-m systemd[1]: Starting MySQL Community Server...
Nov 18 20:16:48 erfan-m mysql-systemd-start[8831]: my_print_defaults: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 19!
Nov 18 20:16:48 erfan-m mysql-systemd-start[8831]: my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
Nov 18 20:16:48 erfan-m systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE

我现在该怎么办,我的问题是什么?

最佳答案

对于 UBUNTU

我必须将 socketPath : '/var/run/mysqld/mysqld.sock' 添加到代码中的 dsn 变量并更正 /etc/mysql/my.cnf 如下:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld] #grouping  config options is important
# Must be unique integer from 1-2^32
server-id        = 1
# Row format required for ZongJi
binlog_format    = row
# Directory must exist. This path works for Linux. Other OS may require
#   different path.
log_bin          = /var/log/mysql/mysql-bin.log

最后使用 $sudo service mysql restart 重启它

对于 CentOS

我必须将 socketPath : '/var/lib/mysql/mysql.sock' 添加到代码中的 dsn 变量,并更正 /etc/my .cnf 如下:

[mysqld]
# Must be unique integer from 1-2^32
server-id        = 1
# Row format required for ZongJi
binlog_format    = row
# Directory must exist. This path works for Linux. Other OS may require
#   different path.
log_bin          = /var/log/mariadb/mariadb-bin.log

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

最后使用 $systemctl restart mariadb 重启它

注意:CentOS 7 已用 MariaDB 取代 MySQL .所以UBUNTU和CentOS的log_bin路径是有区别的。

关于mysql - 如何启用 MySQL 二进制日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682381/

相关文章:

php - 根据另一列中的不同值选择重复值

php - laravel @if 语句显示在 View 中

c++ - 使用 Open CV 迭代器

mysql - 为什么用复合语句创建EVENT会出现这个错误?

Mysql 事件运行但不运行 "stay"

Mysql:对连接两个表的查询感到困惑

MySQL - 使用分组条件查询

java - Hibernate用俄语创建记录显示为问号mysql

python-2.7 - matplotlib.pyplot 挂断任何电话

MYSQL 事件未运行,无法打开 event_scheduler