bri*_*ker 6 mysql macos osx-lion
我已经通过Mac OS X 10.7上的磁盘映像安装了MySQL 5.5.我也加入/usr/local/mysql/bin了我的道路.bash_profile.
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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我觉得我已经尝试了所有可能找到的解决方案,现在我已经没有想法了.我甚至尝试过安装旧版本的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
Run Code Online (Sandbox Code Playgroud)
UPDATE
好吧,我从我的系统中完全删除了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)
Run Code Online (Sandbox Code Playgroud)
所以,我运行了这个命令:
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
Run Code Online (Sandbox Code Playgroud)
但在尝试启动'rails服务器'时仍然收到错误.
更新2
好的,最后更新:在所有事情之后,多次重新安装mysql,看到所有这些错误 - 事实证明,原来的问题可能是宝石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.现在一切似乎都在运作!再次感谢所有的帮助.
Bash脚本从Mac OS X(10.6和10.7)中删除与mysql相关的文件.
#!/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."
Run Code Online (Sandbox Code Playgroud)
复制到remove-mysql.sh,使其成为可执行文件(chmod +x remove-mysql.sh),然后运行它.
mysql_upgradeskip-locking从以下位置删除选项my.cnf:MySQL - my.cnf 中的跳过锁定有何作用?skip-locking如果你在你的 中找不到my.cnf,这意味着 MySQL 从与你期望不同的路径加载它。仔细检查一下。
PS 看来你是从旧版本升级了MySQL,不是吗?