我有一个干净的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。
以下是我迄今为止根据谷歌搜索和研究时间尝试的内容:
权限问题?
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
sudo chown -R root:wheel /Library/StartupItems/MySQLCOM
链接问题?
在/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&
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现在完全正常升级,我不得不做任何额外的事情。
答案 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文件
与提到的Redrick和AndPy一样,我还必须重命名(实际上我删除了文件)位于$ 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
在您完成此操作后,您可能会再次遇到相同的错误。转到文件夹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来创建它。
在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)
给它一个旋转......
cd YOURPATH/usr/local/mysql
rm -rf *.local.err
(删除文件)touch YOURUSERNAME.local.pid
(生成新的* .local.pid文件,引发的错误是抱怨)mysql.server start
答案 9 :(得分:0)
只删除/ usr / local / var / mysql /中的 mysql-bin.index 文件帮助了我。