【发布时间】:2021-07-13 08:22:22
【问题描述】:
我正在尝试使用 mysql2 gem 构建和启动 Rails 6 容器。一切正常,但是当我启动 Rails 服务器时,出现错误
/usr/local/bundle/gems/activesupport-6.0.3.6/lib/active_support/dependencies.rb:324:in `require': libmariadb.so.3: cannot open shared object file: No such file or directory - /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)
我的 Dockerfile 的相关部分是我要安装本机扩展的地方。我知道 MariaDB 也是一种选择,但我也尝试了这些并得到了同样的错误。
apt-get update -qq && apt-get install -y git openssh-client build-essential pkg-config default-mysql-client default-libmysqlclient-dev libsqlite3-dev ;\
我正在使用 mysql2 (0.5.3) 和 Rails 6.0.3.6
有人有什么建议吗?我可能已经花了一个星期的时间,您的帮助将不胜感激。谢谢!
【问题讨论】:
-
该错误消息暗示您已经在使用 MariaDB。您是否能够连接到 Rails 之外的数据库,例如使用
$ mysql --user=user_name --password=your_password db_name? -
当我进入容器时输入
which mysql时什么也没有出现。我错过了什么吗? -
也看看这个。它说“没有这样的文件或目录”,但 mysql2.so 正是它预期的位置
$ ls /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/ client.rb console.rb em.rb error.rb field.rb mysql2.so result.rb statement.rb version.rb除非它指的是 libmariadb.so 不是它应该在的位置。
标签: mysql ruby-on-rails ruby docker mysql2