Сервер Ruby on Rails не запускается: dyld: ленивая привязка символов не удалась: символ не найден: _mysql_get_client_info - PullRequest
2 голосов
/ 23 декабря 2011

Среда (Mac OS X 10.7.2 - Lion):

$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10]
$ rails -v
Rails 3.1.3
$ mysql -v
Server version: 5.1.44 

Я пытаюсь запустить следующее, но меня каждый раз встречает одна и та же ошибка, даже после применения исправлений со всего Интернета:

$ rails server

dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info
Referenced from: /Users/pressplay/.rvm/gems/ruby-1.9.3-p0/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Expected in: flat namespace

dyld: Symbol not found: _mysql_get_client_info
Referenced from: /Users/pressplay/.rvm/gems/ruby-1.9.3-p0/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Expected in: flat namespace

Trace/BPT trap: 5

Неудачные попытки исправления включают в себя:

sudo install_name_tool -change libmysqlclient.16.dylib /Applications/MAMP/Library/lib/mysql/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.3-p0/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle

sudo ln -s /Applications/MAMP/Library/lib/mysql/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Ответы [ 3 ]

7 голосов
/ 11 июля 2012

если вы используете rvm / без rvm (просто используйте sudo), пожалуйста, используйте следующую команду для решения проблем.

rvmsudo ARCHFLAGS="-arch x86_64" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config --with-opt-lib=/usr/local/mysql/lib 
2 голосов
/ 12 ноября 2015

Удаление mysql2 gem, а затем установка gem с помощью sudo решили это за меня.

gem uninstall mysql2
sudo gem install mysql2
0 голосов
/ 05 мая 2014

Я могу просто добавить, что сначала вам нужно удалить гем mysql2, а затем переустановить, следуя инструкциям выше.

sudo gem uninstall mysql2
...