Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 另一个mysqld进程使用相同的InnoDB数据或日志文件_C++_Mysql - Fatal编程技术网

C++ 另一个mysqld进程使用相同的InnoDB数据或日志文件

C++ 另一个mysqld进程使用相同的InnoDB数据或日志文件,c++,mysql,C++,Mysql,我有一个在linux系统上运行的mysql服务器。我已经运行了一个C++的PROG,它用当前的日期和时间戳来建立数据库。我试图在C++中运行另一个进程,它访问不同的数据库,但我有错误。p> 错误如下: InnoDB: check that you do not have another mysqld process InnoDB: using the same InnoDB data or log files InnoDB: Unable to lock /var/lib/mysql/ibdat

我有一个在linux系统上运行的mysql服务器。我已经运行了一个C++的PROG,它用当前的日期和时间戳来建立数据库。我试图在C++中运行另一个进程,它访问不同的数据库,但我有错误。p> 错误如下:

InnoDB: check that you do not have another mysqld process
InnoDB: using the same InnoDB data or log files
InnoDB: Unable to lock /var/lib/mysql/ibdata1, error: 11
有人能解释一下这里出了什么问题吗

谢谢

本页:

讨论可以为MyISAM数据库打开或关闭的“外部锁定”,以支持一组数据上的多个服务器。然而,它似乎不适用于InnoDB。本页:

说这在InnoDB中是不可能的,因为它只能在只读文件系统上完成,而InnoDB不能在这些系统上工作


因此,答案似乎是您无法做到这一点,原因有两个:第一,因为您仍然在填充数据库,同时也想读取它,第二,因为您使用的是InnoDB而不是MyISAM。

我通过杀死mysqld进程解决了这个问题

要在Linux上杀死所有mysqld进程,请执行以下操作:
至少等待10秒钟,使其完全关闭

现在,运行这个命令来检查是否还有一些mysqld进程剩余?
如果您仍能看到更多信息,请运行此命令:

这将杀死所有mysqld进程。

zwinck Thank使我对mysql的理解更加清晰。谢谢@AnasSafi。我在macOS上的MAMP PRO上尝试了您的解决方案,效果很好。
# killall mysqld mysqld_safe
# ps aux | grep mysqld
killall -9 mysqld mysqld_safe