我在 Mac OS X 10.7 上通过磁盘镜像安装了 MySQL 5.5。我还在 .bash_profile
的路径中添加了 /usr/local/mysql/bin
。
which mysql
返回 /usr/local/mysql/bin/mysql
但是,无论我如何尝试,我似乎都无法让服务器运行。
mysql -u root
返回:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sudo/usr/local/mysql/bin/mysqld_safe
启动然后立即停止守护进程:
120130 23:18:57 mysqld_safe Logging to '/usr/local/mysql/data/Bryans-Macbook-Pro.local.err'.
120130 23:18:57 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120130 23:18:59 mysqld_safe mysqld from pid file /usr/local/mysql/data/Bryans-Macbook-Pro.local.pid ended
我觉得我已经尝试了所有可以找到的可能的解决方案,但我现在没有想法了。我什至尝试安装旧版本的 MySQL (5.1),但得到了同样的结果,但一切都是徒劳。
更多信息
运行 mysqld
结果:
$ mysqld
120209 0:02:23 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.20-osx10.6-x86_64/data/ is case insensitive
120209 0:02:23 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist
120209 0:02:23 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120209 0:02:23 InnoDB: The InnoDB memory heap is disabled
120209 0:02:23 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120209 0:02:23 InnoDB: Compressed tables use zlib 1.2.3
120209 0:02:23 InnoDB: Initializing buffer pool, size = 128.0M
120209 0:02:23 InnoDB: Completed initialization of buffer pool
120209 0:02:23 InnoDB: highest supported file format is Barracuda.
120209 0:02:23 InnoDB: 1.1.8 started; log sequence number 1595675
120209 0:02:23 [ERROR] mysqld: unknown option '--skip-locking'
120209 0:02:23 [ERROR] Aborting
120209 0:02:23 InnoDB: Starting shutdown...
120209 0:02:24 InnoDB: Shutdown completed; log sequence number 1595675
120209 0:02:24 [Note] mysqld: Shutdown complete
更新
好吧,我从我的系统中完全删除了 mysql,重新安装了一个旧版本 (5.1),现在它实际上正在启动。但是,我仍然无法运行 rails server
。我收到以下错误:
/Users/bricker/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlopen(/Users/bricker/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle, 9): Library not loaded: /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib (LoadError)
所以,我运行了这个命令:
sudo install_name_tool -change libmysqlclient_r.16.dylib /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
但在尝试启动“rails server”时仍然收到错误。
更新 2
好的,最后更新:在一切之后,重新安装 mysql 无数次,看到所有这些错误 - 事实证明,也许最初的问题是 gems mysql2-0.2.7
和 之间的冲突mysql2-0.3.11
。最终解决问题:
从我的系统中删除了所有与 mysql 相关的文件(请参阅下面的 bash 脚本)
从 MySQL 网站上提供的磁盘镜像安装 MySQL 5.1.61(64 位)
运行以下行:
sudo install_name_tool -change libmysqlclient_r.16.dylib/opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2- 0.2.7/lib/mysql2/mysql2.bundle
sudo install_name_tool -change libmysqlclient.16.dylib/usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2。 7/lib/mysql2/mysql2.bundle
- 运行
gem uninstall mysql2
,并选择版本0.3.11
- 此 RVM 部分中唯一剩下的版本是mysql2-0.2.7
.
现在一切似乎都正常了!再次感谢所有帮助。
用于从 Mac OS X(10.6 和 10.7)中删除与 mysql 相关的文件的 Bash 脚本。
#!/bin/bash
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.*
echo "Done."
复制到 remove-mysql.sh
中,使其可执行 (chmod +x remove-mysql.sh
),然后运行它。
最佳答案
- 运行
mysql_upgrade
- 从
my.cnf
中删除skip-locking
选项:MySQL - what does skip-locking in my.cnf do?
如果您在my.cnf
中找不到skip-locking
,这意味着MySQL 从与您预期不同的路径加载它。仔细检查。
附言看来您从某个旧版本升级了 MySQL,是吗?
关于Lion 上的 MySQL 5.5 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075850/