在Snow Leopard上安装MySQL和mysql gem

时间:2009-12-17 17:20:23

标签: mysql ruby rubygems osx-snow-leopard

找出如何在Snow Leopard 10.6.2上运行MySQL和mysql gem真的很难。我按照各种帖子的指示但尚未成功:

我从源代码构建MySQL版本5.1.39并成功安装。当尝试使用(mysql -u root -p)登录时,mysql返回以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这显然意味着MySQL服务器(mysqld)没有运行。

which mysql: /usr/local/mysql/bin/mysql
which ruby: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin9])
gem -v: 1.3.5
mysql: Server version: 5.1.39 MySQL Community Server (GPL)

经过大量的谷歌搜索后,我发现了

  1. 此命令可以启动mysqld:

    sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

  2. 在Mac OS X 10.5及更高版本中可能会破坏偏好窗格MySQL工具

  3. 此命令应在Snow Leopard上正确安装mysql gem:

    sudo gem uninstall mysql sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

  4. 最终我使用rake db:create:

    之类的东西得到了以下错误
    dyld: lazy symbol binding failed: Symbol not found: _mysql_init 
    Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle 
    Expected in: flat namespace 
    dyld: Symbol not found: _mysql_init 
    Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle 
    Expected in: flat namespace
    

    这个错误引发了以下帖子:http://cho.hapgoods.com/wordpress/?p=158,它基本上告诉我,与XCode 3.0一起提供的Ruby版本在64位环境中不起作用,解决方案可能是安装32位版本的MySQL。

    有任何建议,如何进行?

1 个答案:

答案 0 :(得分:3)

虽然从源代码构建并不一定是个坏主意,但即使使用更好的编译器构建官方发行版,使用MacPorts(http://www.macports.org/install.php)来完成它也可能比自建安装更好。

虽然您可以将OS X提供的Ruby和MySQL纠缠不清,但根据我的经验,它更容易完全在MacPorts领域(/ opt)中工作,并且保持原始发行版不受干扰。

另一个优点是您可以获得更新的Ruby可执行文件。 10.6艘配备1.8.7p72的船只,例如MacPorts提供1.8.7p174。

示例:

sudo port install mysql5
sudo port install mysql5-server
sudo port install rb-mysql