简体   繁体   English

如何使用Ruby作为脚本语言使用Ruby连接到Rails之外的MySql数据库

[英]How do I use Ruby to connect to a MySql database outside of Rails as a scripting language

Hi Im using Ruby as a scripting language. 嗨,我使用Ruby作为脚本语言。 Not for web development, but to connect to a local database on my computer and manipulate it. 不是用于Web开发,而是用于连接到计算机上的本地数据库并对其进行操作。

Id like to know how I can connect. 我想知道如何连接。 Do I need to download/import tools? 我需要下载/导入工具吗? What do I need to get started? 我需要什么入门?

Thanks, 谢谢,


Update 更新资料

I did gem install mysql2 and ran the following ruby file 我做了gem安装mysql2并运行了以下ruby文件

require 'mysql2'  

#my = Mysql.new(hostname, username, password, databasename)  
con = Mysql.new('localhost', 'nverma', 'something', 'ruby')  
rs = con.query('select * from contacts')  
rs.each_hash { |h| puts h['name']}  
con.close

and got the following error:- 并出现以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext
 /kernel_require.rb:55:in `require': dlopen(/Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2 
 /mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
 Referenced from: /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle
 Reason: image not found - /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle
 from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext 
 /kernel_require.rb:55:in `require'
 from /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2.rb:8:in `<top (required)>'
 from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext
 /kernel_require.rb:135:in `require'
 from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext
 /kernel_require.rb:135:in `rescue in require'
 from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext
 /kernel_require.rb:144:in `require'
 from sol5.rb:1:in `<main>'

Please help! 请帮忙!

One option is to use the mysql2 gem: 一种选择是使用mysql2 gem:

gem install mysql2

Connect to your database: 连接到数据库:

client = Mysql2::Client.new(:host => "localhost", :username => "root")

Query the database: 查询数据库:

results = client.query("SELECT * FROM users")

Looking at your update, is the Mysql class your own class? 查看您的更新, Mysql类是您自己的类吗? If so can you post that code also? 如果可以,您还可以发布该代码吗?

If not and you are trying to use mysql2 directly here, then you need instantiate the db connection the way @infused said in the other answer: 如果不是,并且您尝试在此处直接使用mysql2,则需要以@infused在另一个答案中表示的方式实例化db连接:

con = Mysql2::Client.new(host: "localhost", username: "root")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM