我正在尝试启用二进制日志记录,以便我可以在两台服务器之间设置主从复制。我正在使用具有大量数据的现有服务器,并且正在尝试使用以下命令转储数据:
mysqldump -u root -p --all-databases --master-data > masterdump.sql
Run Code Online (Sandbox Code Playgroud)
但我收到错误:mysqldump: Error: Binlogging on server not active
。
我已经遵循了有关如何启用二进制日志记录的各种教程,但没有任何效果。我已确保已将以下参数添加到 my.cnf:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
Run Code Online (Sandbox Code Playgroud)
当我重新启动 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
Run Code Online (Sandbox Code Playgroud)
所以我通过运行来寻找所有的 mysqld 进程pstree
,我发现了以下内容:
root@my_server:~# pstree
init---some stuff
|--
|--mysqld---10*[{mysqld}]
|--
|--sudo---mysqld---23*[{mysqld}]
Run Code Online (Sandbox Code Playgroud)
这就是我被困的地方。我不知道mysqld
ANDsudo mysqld
都运行是否正常。服务器由ServerPilot维护,[我认为] 为我安装了 MySQL。
是否有任何证据表明二进制日志无法启用的任何原因?