mysql中的二进制日志错误

mysql中的二进制日志错误,mysql,Mysql,当我尝试检查二进制日志时: SHOW BINARY LOGS; 我得到这个错误: 错误1381(HY000):您没有使用二进制日志记录 如何解决这个问题?有人能帮忙吗?要启用二进制日志,请使用--log bin[=base\u name]选项启动服务器 如果未给出base_name值,则默认名称为pid file选项的值(默认情况下为主机名),后跟-bin 如果给定了basename,则服务器会将文件写入数据目录,除非为basename指定了前导绝对路径名以指定其他目录。建议您指定一个bas

当我尝试检查二进制日志时:

 SHOW BINARY LOGS;
我得到这个错误:

错误1381(HY000):您没有使用二进制日志记录


如何解决这个问题?有人能帮忙吗?

要启用二进制日志,请使用--log bin[=base\u name]选项启动服务器

如果未给出base_name值,则默认名称为pid file选项的值(默认情况下为主机名),后跟-bin

如果给定了basename,则服务器会将文件写入数据目录,除非为basename指定了前导绝对路径名以指定其他目录。建议您指定一个basename

或者您可以直接使用:

log-bin=mysql-bin

然后重新启动mysql服务。然后将生成二进制文件。如果您在Linux机器上使用lampp,那么您将在/lampp/var/mysql/mysql bin.000001中找到此文件,您需要在启动时激活二进制日志记录

在[mysqld]部分的/etc/my.cnf中添加以下行

[mysqld]
log-bin=mysql-bin
expire-logs-days=7
然后,运行这个

service mysql restart
下次登录mysql时,您将看到一个二进制日志列表,并将在7天后轮换

二进制日志的默认位置将是
/var/lib/mysql
或定义datadir的位置。如果在binlog名称之前指定文件夹,则该文件夹就是位置

比如说

[mysqld]
log-bin=/var/log/mysql-bin
expire-logs-days=7
更新2012-07-12美国东部时间02:20 请按如下方式重新启动mysql,并告诉我们二进制是否登录

service mysql restart --log-bin=mysql-bin

在MySQL配置文件中设置
log bin
变量,然后重新启动MySQL

示例
my.cnf
(在Linux/unix上)或
my.ini
(在Windows上)如下所示:

[client]
...

[mysqld]
...
log-bin=mysql-bin
---
一旦重启,MySQL会自动创建一个新的二进制日志(每次重启时都会这样做)。 您可能还希望查看以下变量:

server-id        = 1
expire_logs_days = 4
sync_binlog      = 1
阅读网站上的详细信息。如果您正在进行复制设置(这是使用二进制日志的主要原因),请退出。

Line

log-bin=mysql-bin
必须放置在线条上方:

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

FWIW,在我尝试设置my.cnf.master和my.cnf.slave文件并将它们分别链接到my.cnf for master和slave后,我遇到了相同的问题。其想法是能够轻松地将机器从主设备切换到从设备,然后再切换回来


事实证明mysqld并没有像预期的那样处理符号链接硬链接文件工作正常(在my.cnf.master my.cnf中)。如果您这样做,请小心,因为覆盖其中一个硬链接文件名可能会破坏链接并创建两个单独的文件(取决于您使用的软件所采用的重写方法)。

删除[mysqld_safe]部分并替换为[mysqld]。
它适合我。

我发现即使my.cnf配置正确,日志记录也会自动失败,因此您也可以尝试重新创建日志文件夹

如果日志处于奇数状态,则可能需要这样做。(就我而言,我只是停止登录my.cnf,然后重新启用它,但什么也没发生,可能是因为现有文件不是最新的更新?)

像这样的方法应该会奏效:

sudo service mysql stop
sudo mv /var/log/mysql /tmp/mysqlold # or rm -fr if you're brave
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql
sudo service mysql start

强制性警告:显然,删除数据库服务器上的任何内容时要小心。这将破坏/中断/破坏将此数据库用作主数据库的任何复制(尽管您可以作为从数据库恢复复制)。也就是说,我相信这应该是安全的,因为它不会删除数据库本身

在运行Debian的MySQL 5.5主机上,我对这个问题失去了理智。上述措施都不起作用。最后,我重新启动了服务器并启用了日志记录。

您是否正在运行Amazon RDS???不,我没有使用Amazon RDS。请像这样重新启动mysql:
服务mysql重启--log bin=mysql bin
您是否将
log bin=mysql bin
放在
[mysqld]下面
header或您是否在my.cnf中的其他标题下放置了???让我们服务器id=1过期\u日志\u天数=7同步\u binlog=0抱歉,您的评论似乎已被截断。你能重新评论或编辑吗?不管怎样,你的设置很好——我自己的值只是一些例子。请注意,在
sync_binlog=0
上,您正在冒一些风险,在主设备上发生电源故障时,事务日志和二进制日志将不同步,从而导致主设备数据和从设备数据不匹配。很好……但请添加一些解释,以便更好地理解。