I’ve installed MySQL 5.5 via the disk image on Mac OS X 10.7. I’ve also added /usr/local/mysql/bin to my path in .bash_profile.
which mysql returns /usr/local/mysql/bin/mysql
However, I can’t seem to get the server running, no matter whatever I try.
mysql -u root returns:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sudo /usr/local/mysql/bin/mysqld_safe starts and then immediately stops the daemon:
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
I feel that I have tried every possible solution that can be found, and I am out of ideas now. I’ve even tried installing an older version of MySQL (5.1) and got the same results and efforts invain.
FURTHER INFORMATION
Running mysqld results in:
$ 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
UPDATE
Well, I removed mysql completely from my system, re-installed an older version (5.1), and it is actually starting up now. However, I still can’t run rails server. I get the following error:
/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)
So, I’ve run this command:
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
But still receive the error when attempting to start the ‘rails server’.
UPDATE 2
Okay, final update: After everything, reinstalling mysql numerous times, seeing all these errors – it turns out that perhaps the original problem was a conflict between gems mysql2-0.2.7 and mysql2-0.3.11. To ultimately fix the problem:
-
Removed all mysql-related files from my system (see bash script below)
-
Installed MySQL 5.1.61 (64-bit) from the Disk Image provided on the MySQL website
-
Ran the following lines:
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
- ran
gem uninstall mysql2, and selected the version0.3.11– the only version left on this RVM section ismysql2-0.2.7.
Now everything seems to be working! Thanks again for all the help.
Bash script to remove mysql-related files from Mac OS X (10.6 & 10.7).
#!/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."
Copy into remove-mysql.sh, make it executable (chmod +x remove-mysql.sh), and run it.
mysql_upgradeskip-lockingoption frommy.cnf: MySQL – what does skip-locking in my.cnf do?If you cannot find
skip-lockingin yourmy.cnf, that means that MySQL loads it from path different to your expectations. Double-check that.P.S. It seems that you upgraded your MySQL from some old version, aren’t you?