MySQL pid结束了(无法启动mysql)

时间:2012-05-16 01:25:32

标签: mysql database macos mysql-error-1064

我有一个干净的MySQL安装(mysql-5.5.24-osx10.6-x86_64)。我在Lion(OS 10.7.4)上使用Mac Pro Quad Core。我安装了MySQL GUI安装程序,还安装了pref窗格和启动项。

但是当我跑步时:

sudo ./bin/mysqld_safe

我收到此消息:

120515 17:58:19 mysqld_safe Logging to '/usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.err'.
120515 17:58:19 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.5.24-osx10.6-x86_64/data
120515 17:58:20 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended

我也无法从首选项窗格启动MySQL。

以下是我迄今为止根据谷歌搜索和研究时间尝试的内容:

权限问题?

This:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.24-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.24-osx10.6-x86_64

sudo chown -R /usr/local/mysql-5.5.24-osx10.6-x86_64/
sudo chown -R /usr/local/mysql

This:

sudo chown -R root:wheel /Library/StartupItems/MySQLCOM

链接问题?

This:

在/usr/local/mysql/support-files/mysql.server中 - 我做了:

basedir="/usr/local/mysql"
datadir="/usr/local/mysql/data"
  

在文件/etc/rc.common中,在末尾添加以下行:   / usr / local / mysql / bin / mysqld_safe --user = mysql&

This:

sudo ln -s /usr/local/mysql-5.5.24-osx10.6-x86_64 /usr/local/mysql

我也尝试了removal process here并重新安装,但这似乎没有什么区别。我还在OS X中启动了Activity Monitor,看看是否有其他mySQL进程是偶然运行的,但事实并非如此。

上面没有任何工作,所以我有点智慧。以下是位于以下位置的.err文件的日志:

/usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.err

120515 18:07:43 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended
120515 18:13:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.5.24-osx10.6-x86_64/data
120515 18:13:01 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.24-osx10.6-x86_64/data/ is case insensitive
120515 18:13:01 [Note] Plugin 'FEDERATED' is disabled.
/usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: Table 'mysql.plugin' doesn't exist
120515 18:13:01 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120515 18:13:01 InnoDB: The InnoDB memory heap is disabled
120515 18:13:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120515 18:13:01 InnoDB: Compressed tables use zlib 1.2.3
120515 18:13:01 InnoDB: Initializing buffer pool, size = 128.0M
120515 18:13:01 InnoDB: Completed initialization of buffer pool
120515 18:13:01 InnoDB: highest supported file format is Barracuda.
120515 18:13:01  InnoDB: Waiting for the background threads to start
120515 18:13:02 InnoDB: 1.1.8 started; log sequence number 1595675
120515 18:13:02 [ERROR] /usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: unknown option '--skip-locking'
120515 18:13:02 [ERROR] Aborting

120515 18:13:02  InnoDB: Starting shutdown...
120515 18:13:03  InnoDB: Shutdown completed; log sequence number 1595675
120515 18:13:03 [Note] /usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: Shutdown complete

120515 18:13:03 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended

更新我将同一台机器从Snow Leopard升级到Mountain Lion 10.8.1并且MySQL现在完全正常升级,我不得不做任何额外的事情。

10 个答案:

答案 0 :(得分:11)

我为我的MAC OS 10.7.5安装mysql最新版本mysql-5.6.10-osx10.7-x86.dmg时遇到同样的问题。以下是我的解决方案。 首先,删除安装的mysql

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*

然后,获取mysql-5.1.68-osx10.6-x86.dmg,安装此旧版本,然后完成!

答案 1 :(得分:8)

因为我无法发表评论(得到< 50声誉:()我在这里写它:)

正如@AndPy所说,与我一样,如果您ls -l /usr/local/var/mysql您可以看到文件COMPUTER-NAME.local.err_mysql所有或某些此类.. {1}} ..在这种情况下,只需删除文件,mysql.server start将创建一个由用户拥有的新文件,并且这次将正确启动:)

如果该文件已经由您的用户拥有,这不会有帮助,您需要更多google :(

答案 2 :(得分:5)

我在redmine bitnami堆栈上发现了这个错误,因为目录数据中的文件所有者不正确。

检查目录/ mysql / data /的所有者必须是' mysql'用户

希望得到这个帮助。

答案 3 :(得分:5)

更新到OS X Mavericks后我遇到了同样的问题。

  

启动MySQL。错误!服务器退出而不更新PID文件

与提到的RedrickAndPy一样,我还必须重命名(实际上我删除了文件)位于$ cd /usr/local/var/mysql的错误文件。我的错误文件名为localhost.err。用$ rm localhost.err删除文件后,我终于可以使用$ mysql.server start再次启动MySQL。

答案 4 :(得分:4)

我遇到了同样的问题。

在/ usr / local / var / mysql中我找到了一个COMPUTER-NAME.local.err形式的文件。只需更改该文件名即可解决问题。我现在可以用

启动mysql服务器
  

mysql.server start

答案 5 :(得分:2)

我的回答与其他人非常相似,但略有不同,这主要适用于bitnami mamp堆栈。我的修复是:

sudo chown -R mysql mysql/

mysql/目录是位于Applications/<mampstack-version>/

的目录

以上将mysql设置为mysql目录的所有者递归到其他目录。

答案 6 :(得分:2)

如果你想让这件事完全正常,请执行以下操作:

首先需要卸载mysql,然后才能执行此操作,确保备份所有数据库。

brew remove mysql

然后你需要确保卸载某些文件,制作以下命令的批处理脚本并运行它:

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*

使用您喜欢的编辑程序转到/etc/hostconfig,然后删除第MYSQLCOM=-YES-

然后运行brew cleanup,然后使用brew install mysql

安装mysql

在您完成此操作后,您可能会再次遇到相同的错误。转到文件夹cd /usr/local/var/mysql/。那里应该有一个名为localhost.local.err

的文件

运行cat ./localhost.local.err并查看文件。你应该看到类似的东西:

2018-03-24 15:41:49 140735679804288 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 48: Address already in use

2018-03-24 15:41:49 140735679804288 [ERROR] Do you already have another mysqld server running on port: 3306 ?

如果你这样做,请运行命令sudo lsof -i :3306,你可能会得到这样的回复:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 74 _mysql 20u IPv6 0xXXXXXXXXXXXXX 0t0 TCP *:mysql (LISTEN)

这意味着mysql已经在端口3306上运行和监听,你需要杀死它。使用top来终止程序或只使用Activity Monitor来终止程序。完成后,无论哪种方式都返回cd /usr/local/var/mysql/并删除文件夹localhost.local.err

完成后,运行mysql.server start,你应该得到以下结果:

180324 15:46:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql SUCCESS!

祝贺。我已经试图解决这个问题一个星期了,这是一个很容易解决的问题,我只是想通了。我讨厌自己。

答案 7 :(得分:0)

120515 18:13:01 [ERROR]无法打开mysql.plugin表。请运行mysql_upgrade来创建它。

  • 关于此错误,我假设您已在my.cnf中指定了一个datadir。如果您使用MySQL的非默认数据目录,则需要将文件夹mysql和performance_schema(以存在者为准)移动到my.cnf中指定的数据目录。您可以在mysql目录中找到这些文件夹。

在MySQL 5.5+中,删除了--skip-locking选项。请改用--skip-external-locking。请参阅MySQL文档 - &gt; http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html 引用:“ - enable-locking和--skip-locking服务器选项(使用--external-locking和--skip-external-locking)。”

答案 8 :(得分:0)

给它一个旋转......

  1. 导航到问题的父目录cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err(删除文件)
  3. touch YOURUSERNAME.local.pid(生成新的* .local.pid文件,引发的错误是抱怨)
  4. cd回到你的项目并使用mysql.server start
  5. 重新启动mysql

答案 9 :(得分:0)

只删除/ usr / local / var / mysql /中的 mysql-bin.index 文件帮助了我。