Require ‘mysq2'

ruby

#1

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


#2

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


#3

root@debian:/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 `’


#4

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

gem list | grep mysql

و این

ruby -v

#5

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


#6

root@debian:/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)


#7

root@debian:/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


#8
sudo apt-get install libmysql-ruby

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


#9

oot@debian:/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


#10

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

libmysqlclient-dev


#12

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

بجای

sudo apt-get install libmysql-ruby

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

‌ sudo apt-get install ruby-mysql2

#13

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


#14

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


#15

این کد روبی منه
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 کدوم فایل رو ادرس سوکت جدید بدم


#16

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


#17

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


#18

mysql.server start


#19

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


#20

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


پروژه mvc با react و php و ruby
#21

root@debian:/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