Ein Fehler ist aufgetreten während der Installation mysql2 (0.3.21) und Bundler kann nicht fortgesetzt werden

Irgendeinen Grund, warum dieser Fehler aufgetaucht, als ich versucht habe die Bündelung einer Anwendung:
Ich habe versucht, die Installation gem install mysql2 -v ‚0.3.21‘, wie Sie empfehlen, aber es kann nicht richtig installiert werden. Auch ich bin mit dieser auf macOS High Sierra. Sorry für meine schlechte Formulierung für diese Frage, da seine mein erstes mal arbeiten mit ruby.

 To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/yamanshrestha/Desktop/Dorsata/vendor/bundle/ruby/2.3.0/extensions/universal-darwin-17/2.3.0/mysql2-0.3.21/mkmf.log

current directory: /Users/yamanshrestha/Desktop/Dorsata/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/yamanshrestha/Desktop/Dorsata/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/ext/mysql2
make "DESTDIR="
compiling infile.c
compiling client.c
client.c:439:3: error: use of undeclared identifier 'my_bool'
  my_bool res = mysql_read_query_result(client);
  ^
client.c:441:19: error: use of undeclared identifier 'res'
  return (void *)(res == 0 ? Qtrue : Qfalse);
                  ^
client.c:762:3: error: use of undeclared identifier 'my_bool'
  my_bool boolval;
  ^
client.c:793:7: error: use of undeclared identifier 'boolval'
      boolval = (value == Qfalse ? 0 : 1);
      ^
client.c:794:17: error: use of undeclared identifier 'boolval'
      retval = &boolval;
                ^
client.c:797:10: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
    case MYSQL_SECURE_AUTH:
         ^~~~~~~~~~~~~~~~~
         MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
  MYSQL_DEFAULT_AUTH,
  ^
client.c:798:7: error: use of undeclared identifier 'boolval'
      boolval = (value == Qfalse ? 0 : 1);
      ^
client.c:799:17: error: use of undeclared identifier 'boolval'
      retval = &boolval;
                ^
client.c:830:38: error: use of undeclared identifier 'boolval'
        wrapper->reconnect_enabled = boolval;
                                     ^
client.c:1185:38: error: use of undeclared identifier 'MYSQL_SECURE_AUTH'; did you mean 'MYSQL_DEFAULT_AUTH'?
  return _mysql_client_options(self, MYSQL_SECURE_AUTH, value);
                                     ^~~~~~~~~~~~~~~~~
                                     MYSQL_DEFAULT_AUTH
/usr/local/Cellar/mysql/8.0.11/include/mysql/mysql.h:188:3: note: 'MYSQL_DEFAULT_AUTH' declared here
  MYSQL_DEFAULT_AUTH,
  ^
10 errors generated.
make: *** [client.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/yamanshrestha/Desktop/Dorsata/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21 for inspection.
Results logged to /Users/yamanshrestha/Desktop/Dorsata/vendor/bundle/ruby/2.3.0/extensions/universal-darwin-17/2.3.0/mysql2-0.3.21/gem_make.out

An error occurred while installing mysql2 (0.3.21), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.21' --source 'http://rubygems.org/'` succeeds before bundling.
  • Kannst du den Inhalt der log-Datei, die Sie erwähnen?



4 Replies
  1. 5

    So, ich habe es geschafft das problem zu lösen, indem ich mich nach dem schauen ein bisschen herum. Im Grunde die version des mysql2 geschrieben wurde, in das gemfile veraltet war im Vergleich zu dem code geschrieben, daher der Unterschied in der syntax zwischen den Versionen wurden verursacht diesen Fehler, wenn Sie versuchen zu installieren mysql2. Daher, um dieses Problem zu lösen, müssen Sie gehen Sie zu Ihrem gemfile und dann ändern Sie die version-Nummer für mysql2. Ich änderte Minen, um die folgenden:

     gem 'mysql2', '~> 0.4.10'

    speichern Sie die Datei und versuchen Sie die Installation erneut, und es sollte worl

    • Dies funktioniert mit High Sierra und ruby 2.3.3
  2. 0

    Ich hatte das gleiche Problem. Wie Sie sehen können, in der Fehlermeldung, der code-interpretation Problem. Dies wird verursacht durch die Inkompatibilität zwischen den Versionen von mysql2 geschrieben gemfile und im code verwendet.
    Zu lösen das ich ausführen:

    – gem install mysql2 (es wird installieren Sie die neueste msql2 version)

    – in meinem gemfile habe ich geändert : gem ‚mysql2′,’~>0.3.1‘ zu gem ‚mysql2‘

  3. 0

    Für mich war die Lösung zu installieren, mysql-connector-c, brew install mysql-connector-c. In meinem speziellen Fall war es schon installiert, aber ich musste neu verknüpfen es mit force overwrite (die Nachrichten in der Konsole wird Ihnen genau sagen, was zu tun ist, in Ihrer situation).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.