我有一个在linux系统上运行的mysql服务器。我已经运行了一个c ++ prog,它正在构建具有当前日期和时间戳的数据库。我正在尝试在c ++中运行另一个访问不同数据库的进程,但我遇到了错误。
错误如下:
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
请有人解释这里出了什么问题
谢谢
答案 0 :(得分:1)
我通过杀死mysqld进程解决了这个问题
# killall mysqld mysqld_safe
至少等待10秒钟,使其干净地关闭。
# ps aux | grep mysqld
killall -9 mysqld mysqld_safe
这将杀死所有mysqld进程。
答案 1 :(得分:0)
此页面: http://dev.mysql.com/doc/refman/5.0/en/external-locking.html
谈论“外部锁定”,可以打开或关闭MyISAM数据库以支持一组数据上的多个服务器。但它似乎不适用于InnoDB。而这个页面: http://book.opensourceproject.org.cn/lamp/mysql/mysql5cert/opensource/0672328127/ch42lev1sec1.html
说InnoDB是不可能的,因为它只能在只读文件系统上完成,InnoDB不适用于那些。
所以似乎答案是你不能这样做,原因有二:首先是因为你仍然想要阅读它而仍然填充数据库,其次是因为你使用的是InnoDB而不是MyISAM。