首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RHEL 8上安装gem mysql2 -v 0.3.21时出错

在RHEL 8上安装gem mysql2 -v 0.3.21时出错
EN

Stack Overflow用户
提问于 2022-06-13 10:11:39
回答 1查看 172关注 0票数 0

我正在将我的应用程序复制到一个新服务器上,因为旧服务器损坏了,但是在尝试运行包安装时,gem mysql2未能安装。

代码语言:javascript
运行
复制
[me@localhost redmine]$ gem install mysql2 -v 0.3.21
Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    current directory: /home/x-mwojciechow4/.rvm/gems/ruby-2.2.9/gems/mysql2-0.3.21/ext/mysql2
/home/x-mwojciechow4/.rvm/rubies/ruby-2.2.9/bin/ruby -I /home/x-mwojciechow4/.rvm/rubies/ruby-2.2.9/lib/ruby/site_ruby/2.2.0 -r ./siteconf20220613-3672195-xa12ap.rb extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting libpath to /usr/lib64/mysql
-----
creating Makefile

current directory: /home/x-mwojciechow4/.rvm/gems/ruby-2.2.9/gems/mysql2-0.3.21/ext/mysql2
make "DESTDIR=" clean

current directory: /home/x-mwojciechow4/.rvm/gems/ruby-2.2.9/gems/mysql2-0.3.21/ext/mysql2
make "DESTDIR="
compiling client.c
client.c: In function ‘nogvl_read_query_result’:
client.c:439:3: error: unknown type name ‘my_bool’; did you mean ‘bool’?
   my_bool res = mysql_read_query_result(client);
   ^~~~~~~
   bool
client.c: In function ‘_mysql_client_options’:
client.c:762:3: error: unknown type name ‘my_bool’; did you mean ‘bool’?
   my_bool boolval;
   ^~~~~~~
   bool
client.c:797:10: error: ‘MYSQL_SECURE_AUTH’ undeclared (first use in this function); did you mean ‘MYSQL_DEFAULT_AUTH’?
     case MYSQL_SECURE_AUTH:
          ^~~~~~~~~~~~~~~~~
          MYSQL_DEFAULT_AUTH
client.c:797:10: note: each undeclared identifier is reported only once for each function it appears in
client.c: In function ‘set_secure_auth’:
client.c:1185:38: error: ‘MYSQL_SECURE_AUTH’ undeclared (first use in this function); did you mean ‘MYSQL_DEFAULT_AUTH’?
   return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
                                      ^~~~~~~~~~~~~~~~~
                                      MYSQL_DEFAULT_AUTH
client.c:1186:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make: *** [Makefile:238: client.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/x-mwojciechow4/.rvm/gems/ruby-2.2.9/gems/mysql2-0.3.21 for inspection.
Results logged to /home/x-mwojciechow4/.rvm/gems/ruby-2.2.9/extensions/x86_64-linux/2.2.0/mysql2-0.3.21/gem_make.out

我注意到的第一个错误是“检查rb_thread_blocking_region().没有”,我在googling中找不到任何有用的东西。

对我来说,保持相同的mysql2版本很重要,因为这是一个测试服务器,所以我希望它尽可能接近生产服务器。

系统:RHEL8.1 Ruby2.2.9p480 Rails 4.2.7.1 MySql 8.0.29 MySQL

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 16:40:41

版本0.3.21中的mysql2 gem是带有MySQL 8.0的不兼容

因此,除非有任何实际问题,否则您应该更新gem版本(无论是在测试上还是在生产上)。mysql2 0.4.10 (0.4.x的最后一个版本)应该与Rails版本兼容,并且支持Rails 8.0。如果您还可以将Rails更新为至少4.2.11.3 (应该这样做,自4.2.7.1版本以来就有很多安全修复),您也可以使用mysql2 0.5.x。

在任何情况下,您提到的所有ruby软件版本(即ruby本身、rails和mysql2)都已经过时,不再在各自的分支中接收任何更新。您应该投资将所有这些更新到新的受支持的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72601129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档