Require ‘mysq2'

سلام من نمیتونم mysql2 رو require کنم اررور میده خیلی سرچ کردم نتونستم کمکم کنید اخه mysql2 نصبه دستورgem install mysql2 رو زدم میگه نصبه سیستم عامل من دبیان ۹

1 پسندیده

سلام, من وقتی با error مواجه میشم از شادی در پوست خودم نمیگنجم! چون در بیشتر مواقع اطلاعات خیلی خوبی در error ها وجود داره که کلید حل معماست :slight_smile:
اگر امکانش هست error رو هم بدین که درک مشابهی بوجود بیاد

1 پسندیده

[email protected]:/home/alisog# irb
irb(main):001:0> require ‘mysql2’
LoadError: cannot load such file – mysql2
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:inrequire’
from (irb):1
from /usr/bin/irb:11:in `’

1 پسندیده

خروجی این فرمان چیه

gem list | grep mysql

و این

ruby -v

[email protected]:/home/alisog# gem list | grep mysql
[email protected]:/home/alisog# ruby -v
ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
[email protected]:/home/alisog#
اولی خروجی نداشت

[email protected]:/home/alisog# gem list

*** LOCAL GEMS ***

addressable (2.5.2)
backports (3.11.1)
bigdecimal (1.2.8)
colorator (1.1.0)
io-console (0.4.5)
json (1.8.3)
multi_json (1.13.1)
mustermann (1.0.2)
psych (2.1.0)
public_suffix (3.0.2)
rack (2.0.4)
rack-protection (2.0.1)
rdoc (4.2.1)
sinatra (2.0.1)
sinatra-contrib (2.0.1)
tilt (2.0.8)

[email protected]:/home/alisog# gem install mysql2
Building native extensions. This could take a while…
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

current directory: /usr/lib/ruby/gems/2.3.0/gems/mysql2-0.5.0/ext/mysql2

/usr/bin/ruby2.3 -r ./siteconf20180325-16255-1ncxsa5.rb extconf.rb
mkmf.rb can’t find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /usr/lib/ruby/gems/2.3.0/gems/mysql2-0.5.0 for inspection.
Results logged to /usr/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0/mysql2-0.5.0/gem_make.out

sudo apt-get install libmysql-ruby

اینم اجرا کنید بعد
gem install mysql2

[email protected]:/home/alisog# apt-get install libmysql-ruby
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libmysql-ruby

شما mysql نصب کردی ؟ یا

libmysqlclient-dev

اگر اولی خروجی نداشت یعنی mysql2 نصب نشده,
برای نصب و کمپایک mysql2 باید مراحلی که @samdvr گفت رو انجام بدی.

بجای

sudo apt-get install libmysql-ruby

از کد زیر استفاده کنید

‌ sudo apt-get install ruby-mysql2

root ؟؟؟؟ :astonished::astonished::astonished::astonished:

mysql2 رو تونستم با
apt-get install ruby-mysql2
require کنم
mysql نشد
حالا فایل database.yml رو از کجا پیدا کنم تا ادرس mysql.sock زمپ رو بهش بدم

این کد روبی منه
require ‘mysql2’

con = Mysql2::Client.new(:host => “localhost”, :username => “root”, :password => “”, :database => “digi_mvc”)
rs = con.query(‘select * from tbl_user’)
rs.each_hash { |h| puts h}
con.close
حالا ارورش
/usr/lib/ruby/vendor_ruby/mysql2/client.rb:89:in connect': Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory") (Mysql2::Error) from /usr/lib/ruby/vendor_ruby/mysql2/client.rb:89:ininitialize’
from /opt/lampp/htdocs/rb/a.rb:5:in new' from /opt/lampp/htdocs/rb/a.rb:5:in
من میخوام به mysql.sock توی زمپ ادرس بدم بدون نصب rails کدوم فایل رو ادرس سوکت جدید بدم

بسیار خب، ممنون،‌من اون بالا رو اصلاح کردم.
فایل yml رو باید خودتون درست کنید، پیشنهاد میکنم به ساختار پروژه های ریلز و یا sinatra یه نگاه بندازین تا الگوی این کار بهتر دستتون بیاد.

تو چه مسیری بسازم

mysql.server start

اگر من باشم مثل ریلز توی پروژه در مسیر config/database.yml این کارو انجام میدم

این config/database.yml کجای ریلز هست الان من میخوام /var/run/mysqld/mysqld.sock رو تو خده روبی دست کاری کنم ادرس mysql زمپ رو بدم

[email protected]:/opt/lampp# ruby /opt/lampp/htdocs/rb/a.rb
/usr/lib/ruby/vendor_ruby/mysql2/client.rb:89:in connect': Can't connect to local MySQL server through socket '**/var/run/mysqld/mysqld.sock**' (2 "No such file or directory") (Mysql2::Error) from /usr/lib/ruby/vendor_ruby/mysql2/client.rb:89:ininitialize’
from /opt/lampp/htdocs/rb/a.rb:5:in new' from /opt/lampp/htdocs/rb/a.rb:5:in