Błąd instalacji mysql2: nie udało się zbudować natywnego rozszerzenia gem
Mam pewne problemy podczas próby instalacji mysql2
gem dla Rails. Kiedy próbuję go zainstalować, uruchamiając bundle install
lub gem install mysql2
, pojawia się następujący błąd:
[[4]} Błąd instalacji mysql2: błąd: nie udało się zbudować natywnego rozszerzenia gem.
Jak mogę to naprawić i pomyślnie zainstalować mysql2
?
27 answers
Na Ubuntu / Debianie i innych dystrybucjach używających aptitude:
sudo apt-get install libmysql-ruby libmysqlclient-dev
Pakiet libmysql-ruby
został wycofany i zastąpiony przez ruby-mysql
. tutaj znalazłem rozwiązanie.
Jeśli powyższe polecenie nie działa, ponieważ nie można znaleźć libmysql-ruby
, wystarczy:
sudo apt-get install libmysqlclient-dev
Na Red Hat / CentOS i innych dystrybucjach używających yum:
sudo yum install mysql-devel
Na Mac OS X z Homebrew :
brew install mysql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-09 20:23:53
Jestem na Macu i używam homebrew do instalacji programów open source. Musiałem zainstalować mac dev tools, aby zainstalować homebrew, ale potem było to proste:
brew install mysql
Aby zainstalować mysql. Od tamtej pory nie miałem problemu z mysql gem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-09 18:53:41
Oto rozwiązanie dla użytkowników systemu windows , mam nadzieję, że pomoże!
Używanie MySQL z Rails 3 Na Windows
-
Zainstaluj railsinstaller -> www.railsinstaller.org (zainstalowałem go do c:\Rails)
Install MySQL (użyłem MySQL 5.5) - > dev.mysql.com/downloads/installer/
--- do instalacji mySQL - - -
jeśli nie masz jeszcze tych dwa pliki zainstalowane mogą być potrzebne do uruchomienia MySQL
vcredist_x86.exe - > http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe - > http://www.microsoft.com/download/en/details.aspx?id=17718
Użyj domyślnej instalacji Maszyna Programistyczna-MySQL Server Config -
port: 3306
nazwa usługi windows: MySQL55
mysql root pass: root (możesz to zmienić później)
(nazwa użytkownika: root)
-MySQL Server Config ---- do instalacji mySQL---
--- zainstaluj Gem mysql2 ---
Ważne: wykonaj to z wiersza poleceń Git Bash (to zostało zainstalowane z railsinstaller) - > start / Git Bash
gem install mysql2 -- ' -- with-mysql-lib="c:\Program Files\MySQL \ MySQL Server 5.5 \ lib" -- with-mysql-include="c:\Program Files\MySQL \ MySQL Server 5.5 \ include"'
Teraz gem powinien być zainstalowany poprawnie
Na koniec skopiuj libmysql.plik dll z
C:\Program Files\MySQL \ MySQL Server 5.5 \ lib
do
C:\Rails\Ruby1.9.2\bin
--- zainstaluj Gem mysql2 ---
Teraz będziesz mógł używać aplikacji Rails z MySQL, jeśli nie jesteś pewien, jak utworzyć aplikację Rails 3 z MySQL read on..
--- Pobierz aplikację Rails 3 z MySQL ---
Otwórz wiersz polecenia (nie Git Bash) - > start/cmd
Przejdź do folderu (c:\Sites)
Tworzenie nowej aplikacji rails
rails new world
Usuń plik c:\Sites\world\public\index.html
Edytuj plik c:\Sites\world\config\routes.rb
dodaj tę linię - > root: to = > 'cities#index'
Otwórz wiersz polecenia (Generuj widoki i Kontrolery)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
Edytuj plik c:\Sites\world\app\models\city.rb aby wyglądać tak
class City < ActiveRecord::Base
set_table_name "city"
end
Edytuj plik c:\Sites\world\config\database.yml to look like this
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
Dodaj do gemfile
gem 'mysql2'
Otwórz wiersz polecenia Windows cmd, nie Git Bash (uruchom swoją aplikację!)
Przejdź do folderu aplikacji (c:\Sites\world)
rails s
Otwórz swoją przeglądarkę tutaj -> http://localhost:3000
--- Pobierz aplikację Rails 3 z MySQL ---
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-16 19:44:04
Dla MacOS Mojave :
gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-11 13:48:01
Mam kilka komputerów, 32 i 64 bitowy procesor, działają na Ubuntu Linux, Wydanie Maverick (10.10).
Miałem ten sam problem, i dla mnie,
sudo apt-get install libmysql-ruby libmysqlclient-dev
wykonałem robotę!!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-23 07:44:18
Inny sposób dla użytkowników MacOS
Jeśli użyłeś "brew" do instalacji mysql:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
X. x. X = wersja kleju mysql2, którą chcesz zainstalować
y. y. y = wersja mysql, którą zainstalowałeś ls /usr/local/Cellar/mysql
, aby ją znaleźć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 15:15:01
Na Ubuntu(18.04)
Udało mi się rozwiązać ten problem, uruchamiając:
sudo apt-get install build-essential libmysqlclient-dev
gem install mysql2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-25 07:56:13
Czy próbowałeś użyć
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
Aby określić lokalizację katalogu oraz ścieżkę do bibliotek MySQL, które są niezbędne do zakończenia instalacji gem?
Źródła: W tym celu prosimy o zapoznanie się z naszą polityką prywatności.]} MySQL Forums:: Ruby:: potrzebna pomoc przy instalacji oprawy MySQL dla Ruby
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-31 11:23:30
Jeśli używasz yum spróbuj:
sudo yum install mysql-devel
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-30 22:58:07
To rozwiązało mój problem raz w Windows:
subst X: "C:\Program files\MySQL\MySQL Server 5.5"
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt
subst X: /D
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-09 01:40:15
Jeśli nadal masz problemy....
Spróbuj zainstalować
sudo apt-get install ruby1.9.1-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-05 11:32:15
Na Debianie Stretch działającym dla mnie pakietem był default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 19:57:10
Miałem ten problem na Windows 7. Jest to najwyraźniej problem niezgodności i rozwiązanie jest następujące:
Pobierz Plik libmySQL.dll
ze starszego instalatora InstantRails. Jest on dostępny z InstantRails GitHub repo .
Następnie skopiuj ten plik do folderu Ruby/bin.
Teraz możesz iść ;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-09 23:57:20
W moim przypadku pomogło:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
Wtedy:
gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
Wynik:
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
Zobacz ten post (Uwaga: Język Japoński w środku).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-07 09:33:39
Ja też mam ten błąd. Rozwiązany poprzez zainstalowanie pakietów programistycznych. Używam Archa i było:
sudo pacman -S base-devel
Który zainstalował:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
Ale myślę, że to rzeczywiście potrzebne make i gcc. Wyjście błędu powiedział (na moim komputerze, między innymi):
" najpierw musisz zainstalować narzędzia programistyczne."
Więc to była oczywista decyzja i pomogła.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-16 12:40:42
Musisz zainstalować pewne zależności
sudo apt-get install libmysql-ruby libmysqlclient-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-28 13:29:42
Uruchomiłem ten błąd na moim komputerze mac i okazało się, że muszę uaktualnić z mysql 32bit do mysql 64 bit, aby ten błąd zniknął. Używałem OSX 10.6 na intel macbook pro z ruby 1.9.2 i rails3. 0. 0
Musiałem również zainstalować xcode, aby uzyskać narzędzia uniksowe, takie jak "make", które są wymagane do kompilacji gem.
Kiedy to zostało zrobione, byłem w stanie uruchomić Gem install mysql i Gem install mysql2 bez błędu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-16 17:11:16
Dla użytkownika windows: Ustawiasz lib i dołączasz ścieżkę mysql, na przykład, jeśli używasz xampp, możesz mieć tak:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-13 05:39:56
Rozwiązanie działa tylko na Mac OS X
Jeśli zainstalowałeś MySQL z homebrew, zadziałało dla mnie odinstalowanie MySQL i zainstalowanie MySQL Community Edition przez stronę MySQL ( https://www.mysql.com/).
Po zainstalowaniu, po prostu wprowadź ponownie polecenie gem install mysql2
lub jeśli to konieczne, sudo gem install mysql2
, Jeśli masz problemy z odmową uprawnień.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-02 01:51:40
Mam klejnot zbudowany na Mac OS X 10.6.6 przez
1) zapewnienie zainstalowania pakietu narzędzi programistycznych
2) pobranie aktualnego pakietu MySQL (w moim przypadku 5.5.8) ze źródła
3) Instalacja narzędzia cmake z cmake.org
4) postępuj zgodnie z instrukcjami w punkcie 2.11 INSTALL-SOURCE z plików dystrybucyjnych mysql
5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
Gem zbudowany pomyślnie, ale są dwa błędy w dokumentacji, na które RDOC i ri narzekają.
Ale teraz kiedy próbuję wymagać 'mysql2' dostaję
LoadError: no such file to load -- mysql2/mysql2
Miałem nadzieję, że błędem, który otrzymałem, było to, że libmysqlclient.16.dylib nie mógł zostać znaleziony, ponieważ dowiedzieliśmy się o tym w innym poście (Szukaj install_name_tool).
Moja $PATH ma w sobie /usr/local/mysql( tam znajdują się moje pliki źródłowe i wbudowane), więc jestem trochę zaskoczony. Jeśli ktoś ma jakieś myśli, sprawdzę po kilku godzinach snu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-13 08:22:40
Jeśli nadal pojawia się błąd, wykonaj kroki instalacji mysql2 gem on Rails 3 on -
Http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
Gdzie większość użytkowników była w stanie zainstalować mysql2 gem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-30 18:45:54
Po poprawieniu problemów z mysql-dev może być konieczne usunięcie złej instalacji mysql2. Przyjrzyj się uważnie komunikatom po instalacji $ bundle. Należy zachować tę ulotkę, aby w razie potrzeby móc ją ponownie przeczytać.]}
rm -rf vendor/cache/
rm -rf ./Zentest
Usunie to złą instalację mysql2, aby finalna instalacja $ bundle mogła stworzyć dobrą.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 02:49:51
Pobierz odpowiednią wersję mysqllib.dll następnie skopiować go do Ruby bin naprawdę działa dla mnie. Kliknij ten link mysql2 gem skompilowany dla błędnej biblioteki klienta mysql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:38
DostaĹ ' em "najpierw musisz zainstalowaÄ ‡ narzÄ ™ dzia programistyczne."błąd podczas próby zainstalowania mysql2 gem po aktualizacji do Mac OS X Mountain Lion. Najwyraźniej wykonanie tej aktualizacji usuwa Kompilatory linii poleceń.
Do naprawy:
- odinstalowałem moją bardzo starą wersję Xcode (uruchomiłem skrypt odinstalowujący w /Developer/Library). Następnie usunięto katalog / Developer.
- poszedłem do AppStore i pobrałem Xcode.
- uruchomił Xcode i wszedł do Preferencje - > pliki do pobrania i zainstalowane narzędzia wiersza poleceń.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-12 02:10:04
Dostajesz ten problem, ponieważ nie zainstalowałeś MySql. Przed zainstalowaniem mysql2 gem. Zainstaluj MySQL. Następnie zainstaluje się mysql2 gem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-18 21:07:44
Chciałem tylko dodać tę odpowiedź specjalnie dlaużytkowników Mac .
Mój serwer działał idealnie, dopóki nie zaktualizowałem mojego xcode. Podczas uruchamiania mojego serwera rails błąd został pokazany w następujący sposób
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-
p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an
executable file. (RuntimeError)
I pojawiła się sugestia, aby zainstalować mysql2 gem na końcu Komunikatu o błędzie. Więc kiedy próbowałem go zainstalować, dostałem błąd, jak wspomniano powyżej w tym pytaniu. Błąd, który dostałem jest następujący
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
Tak jak sugerowałem w tym poście próbowałem ' brew install mysql ' i to się skończyło mówiąc, że mysql Wersja tak i tak już zainstalowany. Ale przed nim było ostrzeżenie:
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
Następnie próbowałem tego sudo xcodebuild -license
i wpisz "zgadzam się" na końcu. Musisz być root, aby zgodzić się na licencję.
Po tym, ponownie próbowałem zainstalować pakiet, a potem wszystko działa normalnie. [ Nawet z powodu tej aktualizacji xcode, miałem problem z moją wieżą również.]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-01 07:29:30
libmysql-ruby
został wycofany i zastąpiony. Nowe polecenie:
sudo apt-get install ruby-mysql libmysqlclient-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-12 10:41:37