Cài đặt MySQL: LỖI: Không thể tạo tiện ích mở rộng gốc đá quý


77

Tôi đang cố gắng cài đặt MySQL lên phiên bản mới nhất do một số cài đặt bị sai ở đâu đó dọc theo dòng. Tôi chạy lệnh gem install mysqlvà tôi nhận được những điều sau:

Tạo phần mở rộng gốc. Quá trình này có thể mất một lúc ... LỖI: Lỗi khi cài đặt mysql: LỖI: Không thể tạo tiện ích mở rộng gốc đá quý.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: cảnh báo: Dir / usr / bin có thể ghi trong thế giới không an toàn trong PATH, chế độ 040777 extconf.rb: 4: cảnh báo: Dir / usr / bin có thể ghi thế giới không an toàn trong PATH, chế độ 040777 extconf.rb: 7: cảnh báo: Dir / usr / bin có thể ghi thế giới không an toàn trong PATH, chế độ 040777 mkmf.rb không thể tìm thấy tệp tiêu đề cho ruby ​​tại / Hệ thống /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Các tệp Gem sẽ vẫn được cài đặt trong /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 để kiểm tra. Kết quả được ghi vào /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Tôi đã tìm kiếm và thử rất nhiều thứ, từ cài đặt các phiên bản cụ thể đến cố gắng cài đặt lại ruby ​​mà không gặp may.

Bất kỳ ý tưởng nơi tôi có thể đang đi sai?

Tôi đang cố gắng cài đặt MySQL lên phiên bản mới nhất do một số cài đặt bị sai ở đâu đó dọc theo dòng. Tôi chạy lệnh gem install mysqlvà tôi nhận được những điều sau:

Tạo phần mở rộng gốc. Quá trình này có thể mất một lúc ... LỖI: Lỗi khi cài đặt mysql: LỖI: Không thể tạo tiện ích mở rộng gốc đá quý.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: cảnh báo: Dir / usr / bin có thể ghi trong thế giới không an toàn trong PATH, chế độ 040777 extconf.rb: 4: cảnh báo: Dir / usr / bin có thể ghi thế giới không an toàn trong PATH, chế độ 040777 extconf.rb: 7: cảnh báo: Dir / usr / bin có thể ghi thế giới không an toàn trong PATH, chế độ 040777 mkmf.rb không thể tìm thấy tệp tiêu đề cho ruby ​​tại / Hệ thống /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Các tệp Gem sẽ vẫn được cài đặt trong /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 để kiểm tra. Kết quả được ghi vào /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Tôi đã tìm kiếm và thử rất nhiều thứ, từ cài đặt các phiên bản cụ thể đến cố gắng cài đặt lại ruby ​​mà không gặp may.

Bất kỳ ý tưởng nơi tôi có thể đang đi sai?

CHỈNH SỬA : Tôi đã cài đặt XCode trên đĩa DVD Snow Leopard của mình và lỗi chỉ thay đổi một chút thành như sau:

Tạo phần mở rộng gốc. Quá trình này có thể mất một lúc ... LỖI: Lỗi khi cài đặt mysql: LỖI: Không thể tạo tiện ích mở rộng gốc đá quý.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: cảnh báo: Dir / usr / bin có thể ghi thế giới không an toàn trong PATH, chế độ 040777 extconf.rb: 4: cảnh báo: Thế giới không an toàn có thể ghi dir / usr / bin trong PATH, chế độ 040777 extconf.rb: 7: cảnh báo: Thế giới không an toàn có thể ghi dir / usr / bin trong PATH, chế độ 040777 extconf.rb: 17: cảnh báo: Thế giới không an toàn có thể ghi dir / usr / bin trong PATH, chế độ 040777 kiểm tra mysql_query () trong -lmysqlclient ... không kiểm tra main () trong -lm ... có kiểm tra mysql_query () trong -lmysqlclient ... không kiểm tra main () trong - lz ... có kiểm tra mysql_query () trong -lmysqlclient ... không kiểm tra main () trong -lsocket ... không kiểm tra mysql_query () trong -lmysqlclient ... không kiểm tra main () trong -lnsl. .. không kiểm tra mysql_query () trong -lmysqlclient ... không kiểm tra main () trong -lmygcc ...không kiểm tra mysql_query () trong -lmysqlclient ... không * extconf.rb không thành công * Không thể tạo Makefile do một số lý do, có thể là thiếu thư viện và / hoặc tiêu đề cần thiết. Kiểm tra tệp mkmf.log để biết thêm chi tiết. Bạn có thể cần các tùy chọn cấu hình.

Các tùy chọn cấu hình được cung cấp: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - without-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / Hệ thống / Thư viện / Khung công tác / Ruby.framework / Phiên bản / 1.

Các tệp Gem sẽ vẫn được cài đặt trong /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 để kiểm tra. Kết quả được ghi vào /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

thực hiện "nào mysql" trên dòng lệnh không trả lại gì, có nghĩa là nó không nhận ra nó. Tôi cũng đã cài đặt tùy chọn sở thích hệ thống MySQL và tôi không thể ngăn MySQL chạy. Bây giờ tôi hoàn toàn bế tắc không biết phải làm gì!

CHỈNH SỬA

Tôi vừa cài đặt lại hoàn toàn MySQL bằng hướng dẫn này http://hivelogic.com/articles/installing-mysql-on-mac-os-x

Thật không may, điều này cũng không hoạt động, tôi vẫn nhận được các lỗi tương tự. Tôi thậm chí không thể thực hiện mysql -uroot tại dòng lệnh, tôi gặp lỗi:

LỖI 2002 (HY000): Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/tmp/mysql.sock' (2)

Vì vậy, tôi nghĩ rằng tôi đã thử mọi thứ.

** ĐÃ GIẢI QUYẾT *

Xin lỗi các bạn, lý do cho việc này không hoạt động là do các đường dẫn MySQL. Tôi đã viết blog về nó ở đây: http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/

Câu trả lời:


64

Cài đặt đá quý mysql trên OSX

trong một thiết bị đầu cuối .. Đầu tiên hãy thực hiện 'định vị mysql_config' và sau đó thay thế đường dẫn trong lệnh sau bằng vị trí của tệp đó .

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed

2
Tôi đã cài đặt XAMPP cho OSX, vì vậy lệnh của tôi là: gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config. Không cần sudo!
thesmart

1
Chỉ là fyi. Tôi vẫn không thể cài đặt, nhưng sau đó tôi nhận ra rằng / usr / local / mysql / bin không có trên biến env PATH của tôi. Khi tôi nhận được điều đó trên PATH của mình, tôi đã có thể cài đặt nó mà không gặp vấn đề gì.
justspamjustin

3
Tôi phải sudo locate mysql_configlấy các đường dẫn cấu hình. Nếu không, nó sẽ trả về thông báo:WARNING: The locate database (/var/db/locate.database) does not exist. ...
RNickMcCandless

Tôi đã phải cài đặt công cụ dòng lệnh xcode trước khi câu trả lời này cuối cùng phù hợp với tôi. Xem câu trả lời có liên quan này: stackoverflow.com/questions/761521/… và sau đó thử sudo gem install mysql1 etcnhư trong câu trả lời này :)
Josh Burson

@JoshBurson Nếu bạn muốn có hướng dẫn hoàn chỉnh để cài đặt mysql từ đầu trên OSX, tôi nghĩ đó là một câu chuyện hoàn toàn khác.
Trevoke

163

Trên hệ thống Debian (hoặc Ubuntu), chỉ cần cài đặt gói libmysqlclient-dev bằng cách sử dụng:

sudo apt-get install libmysqlclient-dev

và sau đó:

gem install mysql

Nó sẽ được cài đặt mà không có bất kỳ lỗi nào.


1
Tuyệt quá! Làm việc trong Ubuntu 14.10 64 bit
Miquel

Làm việc cho tôi quá, Ubuntu 14,4 LTS đáng tin cậy
user3632930

17

Trước hết, bạn cần phân biệt giữa MySQL dưới dạng Máy chủ, MySQL dưới dạng Máy khách và các ràng buộc Ruby với MySQL.

Tôi không rành về Mac, nhưng đối với * nix OS, bạn cần cài đặt MySQL thông qua trình quản lý gói của mình. Để cài đặt các ràng buộc Ruby với

gem install mysql

bạn cần tiêu đề phát triển của ruby ​​(trong Ubuntu nó là gói ruby-dev) và tiêu đề phát triển của MySQL-Client (hiện có libmysqlclient16-devtrong Ubuntu). Tôi không biết liệu chúng có được đặt tên khác trên Mac hay không, nhưng sau khi bạn cài đặt chúng, các ràng buộc Ruby sẽ cài đặt mà không gặp bất kỳ lỗi nào.


Chắc chắn là có một phiên bản nhiều gói làm được cả hai điều này. Tôi cũng đã trải qua quá trình này. Tôi nghĩ bạn đúng, tôi cần phải phân biệt giữa hai vì đây chủ yếu là vấn đề của tôi. Một tùy chọn khác, có lẽ, là cài đặt MAMP và sử dụng nó? Tôi cần gì sau đó?
Kezzer

MAMP là viết tắt của Mac, Apache, MySQL, Php. Vì vậy, bạn sẽ vẫn cần một MySQL-Server và thêm vào Apache 2, và các thư viện php cho apache. Tôi không chắc liệu bạn có thể chọn MAMP trong trình quản lý gói của mình hay không và nó sẽ cài đặt tất cả các tệp cần thiết. Có thể một người dùng Mac có thể giúp bạn.
Aurril

Thật vậy, nó sẽ không cần đến MAMP, nhưng nó chỉ là một cách dễ dàng để phục vụ một phiên bản MySQL.
Kezzer

4
Đây chính xác là những gì tôi cần trên Ubuntu: sudo apt-get install ruby-devsudo gem install mysql. Cảm ơn!
Dan Breslau

1
vâng, điều này làm việc: 'sudo apt-get install ruby-dev libmysqlclient16-dev' rồi 'sudo gem install mysql'
Travis Reeder

9

Một số người thấy bài đăng này hữu ích.

Ngoài ra, trước tiên tôi cần gõ cái này:

yum install mysql-devel

và sau đó:

gem install mysql 

Đối với một số người, bạn có thể cần nhập:

gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config

Dude, Nếu tôi có thể cho bạn 2 lên, tôi sẽ! Mặc dù cần lưu ý rằng lệnh yum này có thể chỉ hữu ích với một số phiên bản của LINUX. Trong trường hợp của tôi là CentOS 6.0
Onema

5

trên OSX Mountain Lion: Nếu bạn đã brewcài đặt, brew install mysqlhãy làm theo cách instructionstạo cơ sở dữ liệu thử nghiệm với mysql trên máy của bạn. Bạn không cần phải thực hiện tất cả các bước, tôi không cần Sau khi làm xong, tôi đã có thể gói cài đặt và cào.


Đây là giải pháp duy nhất phù hợp với tôi! Cổ vũ người bạn đời!
Cynthia Sanchez

3

Để giải quyết

Gem :: Ext :: BuildError: LỖI: Không tạo được lỗi mở rộng gem gốc cho mysql2,

Tôi nghĩ libmysql-ruby đã được thay đổi bằng ruby-mysql

Chỉ cần thử với các lệnh sau,

sudo apt-get install ruby-mysql

& sau đó

sudo apt-get install libmysqlclient-dev


2

Tôi đã có trải nghiệm tương tự, vì vậy đây là những điều tôi đã thử

Đầu tiên, tôi đã cố gắng cài đặt các gói yêu cầu của mysql bằng cách chạy lệnh bên dưới trong thiết bị đầu cuối của mình

sudo apt-get install build-essential libmysqlclient-dev

Thứ hai, tôi đã thử cập nhật rubygem trên hệ thống của mình bằng cách chạy lệnh bên dưới trong thiết bị đầu cuối của mình

sudo gem update --system

Nhưng tôi vẫn gặp vấn đề tương tự. Sau nhiều nghiên cứu, tôi nhận ra rằng mình đang sử dụng phiên bản gần như lỗi thời của đá quý mysql. Tôi chỉ cần sử dụng đá quý mysql2 (đá quý mysql2 ) chứ không phải đá quý mysql , vì vậy tôi đã sửa nó bằng cách chạy lệnh bên dưới trong thiết bị đầu cuối của mình

gem install mysql2

Điều này làm việc tốt cho tôi. Trước khi chạy lệnh cuối cùng, hãy đảm bảo rằng bạn đã chạy lệnh đầu tiên và lệnh thứ hai để đảm bảo rằng mọi thứ đều ổn trên hệ thống của bạn.

Đó là tất cả.

Tôi hi vọng cái này giúp được


0

bạn có thể thử cài đặt lại phiên bản mới nhất của xcode / dev. công cụ cho báo tuyết - điều này sẽ sửa lỗi của bạn


Đây là một trong những điều đầu tiên tôi làm. Phiên bản XCode của Snow Leopard đã được cài đặt trên máy của tôi.
Kezzer


0

Chú ý: Bạn cần chỉ định - key và hơn --with-mysql-config = / usr / local / mysql / bin / mysql_config


1
Một lần nữa, câu trả lời này đang trôi nổi ở nhiều nơi. Trong trường hợp của tôi, nó không hoạt động. Thêm vào đó, mysql không tồn tại đối với tôi trong / usr / local / tôi tin.
Kezzer

0

Nếu bạn sử dụng máy chủ Percona Mysql

$ yum cài đặt Percona-Server-devel-55

$ gem cài đặt mysql



0

Hệ điều hành Ubuntu của bạn cần cài đặt thư viện cho máy khách mysql sudo apt-get install libmysqlclient-dev

Sau đó chỉ cần cài đặt bundlehoặcbundle install

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.