2016-01-02 64 views
3

我試圖用Rails與Ampps MySQL的垃圾桶,但是當我運行命令rails generate scaffold User name:string email:string我收到以下錯誤:從AMPPS使用MySQL使用Rails

dyld: lazy symbol binding failed: Symbol not found: _mysql_server_init 
Referenced from: /Users/myusername/.rvm/gems/ruby-2.2.1/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle 
    Expected in: flat namespace 

dyld: Symbol not found: _mysql_server_init 
    Referenced from: /Users/myusername/.rvm/gems/ruby-2.2.1/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle 
    Expected in: flat namespace 

我已經配置Ampps MySQL搭配我的環境,但我無法設法使其與軌道工作,我有以下配置。

$ which mysql           
/Applications/AMPPS/mysql/bin/mysql 

$ echo $PATH 
/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/[email protected]/bin:/Users/myusername/.rvm/rubies/ruby-2.2.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/[email protected]/bin:/Users/myusername/.rvm/rubies/ruby-2.2.1/bin:/Applications/AMPPS/php-5.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/myusername/.rvm/bin:/Users/myusername/.rvm/bin:/Applications/AMPPS/mysql/bin 

$ ls -l /usr/local/lib/libmy*.dylib 
lrwxr-xr-x 1 myusername admin 53 Jan 1 19:30 /usr/local/lib/libmysqlclient.18.dylib -> /Applications/AMPPS/mysql/lib/libmysqlclient.18.dylib 

我試圖做的命令,但沒有成功:

$ gem install mysql2 -- --with-mysql-lib=/Applications/AMPPS/mysql/lib --with-mysql-include=/Applications/AMPPS/mysql/include --with-mysql-config=/Applications/AMPPS/mysql/bin/mysql_config 

而且

bundle config build.mysql2 --with-mysql-lib=/Applications/AMPPS/mysql/lib --with-mysql-include=/Applications/AMPPS/mysql/include --with-mysql-config=/Applications/AMPPS/mysql/bin/mysql_config 
bundle install 

任何想法?

+0

'file/Applications/AMPPS/mysql/bin/mysql'告訴你什麼?符號未找到錯誤通常是架構不匹配的結果。 – miken32

+0

您不想將我的答案標記爲已接受的任何原因?它沒有解決你的問題嗎? – miken32

+0

對不起,我分配的點和認爲這足以標記爲接受它我的壞:( – JohnnyAce

回答

1

我下載了這個AMPPS包,並沒有對MySQL二進制快速檢查:

$ file /Volumes/AMPPS/AMPPS/mysql/bin/mysql 
/Volumes/AMPPS/AMPPS/mysql/bin/mysql: Mach-O executable i386 

你的64位紅寶石安裝試圖鏈接到32位的MySQL庫,並沒有發現什麼它看對於。 「找不到符號」錯誤通常表示架構不匹配。

我給你的建議是從MacPorts或Homebrew等軟件包管理系統安裝這些程序。我偏愛MacPorts,所以我會給你說明。我得到的印象自制更受歡迎,但沒有使用它自己。

  1. 安裝Xcode和Xcode的命令行工具
  2. 同意Xcode的許可證在終端:sudo xcodebuild -license
  3. 安裝MacPorts的:https://distfiles.macports.org/MacPorts/MacPorts-2.3.4-10.11-ElCapitan.pkg
  4. 更新端口列表:sudo port selfupdate
  5. 安裝遠:sudo port install mysql56 rb-rails rb-mysql
  6. 定期更新:sudo port selfupdate && sudo port -uc upgrade outdated

通過這種方式,您可以爲系統正確構建二進制文件,您可以輕鬆地使它們保持最新狀態,並且不會使用2千兆字節的不必要的東西填充系統(5種不同PHP版本,一對數據庫服務器,Perl,Python等)。另外,您還可以獲得Ruby等其他實用程序的最新版本,而不是依賴操作系統附帶的過時版本。