Lion上的MySQL 5.5不工作
我已经通过Mac OS X 10.7上的磁盘映像安装了MySQL 5.5。我还在Lion上的MySQL 5.5不工作,mysql,macos,osx-lion,Mysql,Macos,Osx Lion,我已经通过Mac OS X 10.7上的磁盘映像安装了MySQL 5.5。我还在.bash\u profile中的路径中添加了/usr/local/mysql/bin 哪个mysql返回/usr/local/mysql/bin/mysql 然而,无论我做什么尝试,我似乎都无法让服务器运行 mysql-u root返回: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
.bash\u profile
中的路径中添加了/usr/local/mysql/bin
哪个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\u 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服务器
。我得到以下错误:
/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服务器”时仍会收到错误
更新2
好的,最后一次更新:在一切结束后,多次重新安装mysql,看到所有这些错误-结果可能是最初的问题是gemsmysql2-0.2.7
和mysql2-0.3.11
之间的冲突。要最终解决问题,请执行以下操作:
sudo安装_name_工具-更改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安装名称工具-更改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卸载mysql2
,并选择版本0.3.11
-此RVM节上剩下的唯一版本是mysql2-0.2.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."
复制到remove mysql.sh
,使其可执行(chmod+x remove mysql.sh
),然后运行它。先试试这个
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
似乎您需要正确安装它,并让它创建所需的sock文件听起来(对我来说)您有权限问题
检查以下目录中的烫发:
/usr/local/mysql/bin/usr/local/mysql/data
/usr/local/mysql/include
/usr/local/mysql/lib
/usr/local/mysql/scripts
/usr/local/mysql/share
…
/usr/local/mysql/*
对于mysql用户和mysql组,它们都应该是读/写/执行的 阅读有关安装布局的详细信息: mysql\u安全脚本:我认为它可能会让用户切换到“用户”mysql。 请阅读更多关于此的内容:
my.cnf
中删除跳过锁定
选项:my.cnf
中找不到skip locking
,这意味着MySQL从不同于您期望的路径加载它。再检查一遍
另外,您似乎是从某个旧版本升级了MySQL,是吗?请检查以确保您的数据目录是MySQL可读写的 尝试运行
mysqld\u safe——跳过锁定&
这将在后台启动服务器。然后用“mysql”登录。。它不应该要求任何凭证
检查mysql数据库的用户表中是否定义了任何用户
您可能必须使用以下方式手动添加用户(因为上面绕过了授权系统):
使用mysql
插入到用户中
完成后,从mysql客户端出来,执行一个killall-s1 mysqld
。。您可能需要执行一个killall-s15mysqld
,以使后台工作干净利落地完成。请不要对糟糕的旧流程执行-9
作业/kill%%等也可以使用。在错误日志的一行中,这引起了我的注意
120209 0:02:23 [ERROR] mysqld: unknown option '--skip-locking'
您可能希望将my.cnf中的替换为
由于您删除了
--跳过锁定
请在my.cnf中查找datadir,并确保将该变量指向mysql数据所在的位置。只需从/usr/local
目录运行mysql\u install\u db
。有关更多信息,请参阅。您查看过引用的错误日志或系统控制台吗?它提到的错误日志是空的,我不知道如何检查系统控制台。应用程序>实用程序>控制台系统控制台中的所有内容都是我运行了命令:1/31/12 12:09:39.915 am sudo:bricker:TTY=ttys001;PWD=/private/tmp;用户=根用户;COMMAND=/usr/local/mysql/bin/mysqld_safe
请参阅,如果此链接有帮助:您是否检查了/tmp是否包含mysql.sock?已授予/usr/local/mysql/中的所有文件777权限并切换到组\u mysql
,但我仍然得到相同的结果。您是否从mysql磁盘映像安装了mysql启动项?如果您这样做了,您应该能够运行该行,MySQL也应该在启动时启动。我已经启动了MySQL-现在在尝试运行rails server
时收到不同的错误。是的,我正在从旧版本升级。我从my.cnf中删除了跳过锁定,现在收到以下错误:无法打开和锁定特权表:表“mysql.host”不存在
。我在谷歌上找到了一些可能的解决方案,但似乎都不管用。你从哪个版本升级?当我
120209 0:02:23 [ERROR] mysqld: unknown option '--skip-locking'