繁体   English   中英

LoadError: MySQL2 gem 问题,在 Ubuntu LTS 20.04 上的 libmysqlclient.so.20 版本不正确

[英]LoadError: MySQL2 gem issue with incorrect libmysqlclient.so.20 version on Ubuntu LTS 20.04

自从升级到 Ubuntu LTS 20.04(从 LTS 18)以来,我一直在使用较新版本的 MySQL(从 v5.7.3 到 8.0.16)。 所有数据库和配置都已成功更新,但 MySQL2 gem 坚持尝试针对旧版本的 libmysqlclient(libmysqlclient.so.20 而不是较新的 libmysqlclient.so.21)进行构建

我已经卸载并重新安装了 APT 包:mysql-server 和 libmysqlclient-dev,以及卸载并重新安装 MySQL2 gem,但没有任何效果。

正如您从下面的数据中看到的那样,它似乎仍然链接不正确,我找不到将其链接到正确版本的方法。 非常感谢任何帮助。

$宝石列表mysql2

*** 当地宝石 ***

mysql2 (0.5.3)

$ mysql -v -u *** -p 输入密码:欢迎使用 MySQL 监视器。 命令以 ; 结尾或\\g。 您的 MySQL 连接 ID 为 14 服务器版本:8.0.21-0ubuntu0.20.04.4 (Ubuntu)

$ RAILS_ENV =产品包EXEC轨Ç回溯(最近通话最后一个):1:/首页/ / /shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:在<top (required)>' /home/rails/kwai/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in require': libmysqlclient.so.20 : 无法打开共享对象文件: 没有那个文件或目录 - /home/rails/kwai/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)

$ ldd mysql2.so linux-vdso.so.1 (0x00007fffa3b5e000) libruby.so.2.6 => /home/***/.rvm/rubies/ruby-2.6.3/lib/libruby.so.2.6 (0x00007f8d4c92d000) libmysqlclient.so.20 => 未找到 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8d4c902000) libc.so.6 => /lib/x86_64-linux-gnu/libc .so.6 (0x00007f8d4c710000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8d4c6f4000) librt.so.1 => /lib/x86_64-linux-sognu/ .1 (0x00007f8d4c6e9000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f8d4c663000) libdl.so.2 => /lib/x86_solibd-linux .2 (0x00007f8d4c65d000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f8d4c622000) libm.so.6 => /lib/x86_64-linux-gnu/libm (0x00007f8d4c4d3000) /lib64/ld-linux-x86-64.so.2 (0x00007f8d4cecc000)

$ ls -l /usr/lib/x86_64-linux-gnu/libmy* -rw-r--r-- 1 根根 9242056 八月 4 日 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.a lrwxrwxrwx 1 root root 20 Aug 4 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.so -> libmysqlclient.so.21 lrwxrwxrwx 1 root root 25 Aug 4 12:39 /usr/lib/x86_64-linux-gnu /libmysqlclient.so.21 -> libmysqlclient.so.21.1.21 -rw-r--r-- 1 root root 7264264 Aug 4 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.1。 21

我删除了

./vendor/bundle/ruby/2.7.0/specifications/mysql2-0.5.3.gemspec
./vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3
./vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2

它有效。 谢谢

终于解决了。 我不得不手动删除所有 builder 和 .rvm 文件夹中所有以前的 gem 副本,然后 gem 似乎可以正确编译,一切又重新运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM