使用来自 AMPPS 的 MySQL 和 Rails
Use MySQL from AMPPS with Rails
我正在尝试将 Rails 与来自 Ampps 的 MySQL bin 一起使用,但是当我 运行 命令 rails generate scaffold User name:string email:string
时,我收到以下错误:
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,但我无法让它与 rails 一起工作,我有以下配置。
$ which mysql
/Applications/AMPPS/mysql/bin/mysql
$ echo $PATH
/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/ruby-2.2.1@global/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/ruby-2.2.1@global/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
有什么想法吗?
我下载了这个 AMPPS 包并快速检查了 MySQL 二进制文件:
$ file /Volumes/AMPPS/AMPPS/mysql/bin/mysql
/Volumes/AMPPS/AMPPS/mysql/bin/mysql: Mach-O executable i386
您的 64 位 Ruby 安装正在尝试 link 到 32 位 MySQL 库,但没有找到它要查找的内容。 "Symbol not found" 错误通常表示体系结构不匹配。
我对您的建议是从包管理系统(例如 MacPorts 或 Homebrew)安装这些程序。我偏爱 MacPorts,所以我会为您提供相关说明。我觉得 Homebrew 比较流行,但我自己没用过。
- 安装 Xcode 和 Xcode 命令行工具
- 同意 Xcode 终端许可:
sudo xcodebuild -license
- 安装 MacPorts:https://distfiles.macports.org/MacPorts/MacPorts-2.3.4-10.11-ElCapitan.pkg
- 更新端口列表:
sudo port selfupdate
- 安装走:
sudo port install mysql56 rb-rails rb-mysql
- 定期更新:
sudo port selfupdate && sudo port -uc upgrade outdated
这样您就可以为您的系统正确构建二进制文件,您可以轻松地使它们保持最新状态,并且您不会用 2 GB 的东西填满您的系统,这些东西您不一定会使用( 5 个不同版本的 PHP、几个数据库服务器、Perl、Python 等)此外,您还可以获得 up-to-date 版本的其他实用程序,例如 Ruby,而不是而不是依赖操作系统附带的过时版本。
我正在尝试将 Rails 与来自 Ampps 的 MySQL bin 一起使用,但是当我 运行 命令 rails generate scaffold User name:string email:string
时,我收到以下错误:
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,但我无法让它与 rails 一起工作,我有以下配置。
$ which mysql
/Applications/AMPPS/mysql/bin/mysql
$ echo $PATH
/Users/myusername/.rvm/gems/ruby-2.2.1/bin:/Users/myusername/.rvm/gems/ruby-2.2.1@global/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/ruby-2.2.1@global/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
有什么想法吗?
我下载了这个 AMPPS 包并快速检查了 MySQL 二进制文件:
$ file /Volumes/AMPPS/AMPPS/mysql/bin/mysql
/Volumes/AMPPS/AMPPS/mysql/bin/mysql: Mach-O executable i386
您的 64 位 Ruby 安装正在尝试 link 到 32 位 MySQL 库,但没有找到它要查找的内容。 "Symbol not found" 错误通常表示体系结构不匹配。
我对您的建议是从包管理系统(例如 MacPorts 或 Homebrew)安装这些程序。我偏爱 MacPorts,所以我会为您提供相关说明。我觉得 Homebrew 比较流行,但我自己没用过。
- 安装 Xcode 和 Xcode 命令行工具
- 同意 Xcode 终端许可:
sudo xcodebuild -license
- 安装 MacPorts:https://distfiles.macports.org/MacPorts/MacPorts-2.3.4-10.11-ElCapitan.pkg
- 更新端口列表:
sudo port selfupdate
- 安装走:
sudo port install mysql56 rb-rails rb-mysql
- 定期更新:
sudo port selfupdate && sudo port -uc upgrade outdated
这样您就可以为您的系统正确构建二进制文件,您可以轻松地使它们保持最新状态,并且您不会用 2 GB 的东西填满您的系统,这些东西您不一定会使用( 5 个不同版本的 PHP、几个数据库服务器、Perl、Python 等)此外,您还可以获得 up-to-date 版本的其他实用程序,例如 Ruby,而不是而不是依赖操作系统附带的过时版本。