我正在尝试启用二进制日志记录,以便可以在两台服务器之间设置主从复制。我正在使用一台拥有大量数据的现有服务器,并尝试使用以下命令转储数据:
mysqldump -u root -p --all-databases --master-data > masterdump.sql
但我收到错误:mysqldump: Error: Binlogging on server not active
。
我按照各种教程操作,了解如何启用二进制日志记录,但都不起作用。我已确保已将以下参数添加到 my.cnf:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
当我重新启动 MySQL 时,需要一段时间(我猜是因为数据库太大了),大约 60 秒,但最终还是启动了。然而,当我检查时/var/log/mysql/error.log
,我发现以下错误(重复了数百次):
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
因此我通过运行查找所有 mysqld 进程pstree
,发现了以下内容:
root@my_server:~# pstree
init---some stuff
|--
|--mysqld---10*[{mysqld}]
|--
|--sudo---mysqld---23*[{mysqld}]
mysqld
这就是我被困的地方。我不知道同时运行AND是否正常sudo mysqld
。服务器由服务器导航,我认为它帮我安装了 MySQL。
这些证据是否能指出二进制日志无法启用的原因?