当前位置: 首页 » 网站建设 » mysql数据库知识 » 正文

Ruby如何使用Mysql2连接操作MySQL

发布时间:2025-01-03 以下文章来源于网友投稿,内容仅供参考!
Ruby操作MySQL

使用mysql2连接mysql并操作mysql。

geminstallmysql2
连接mysql

建立连接:

require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'})

接受的连接选项包括:

Mysql2::Client.new(:host,:username,:password,:port,:database,:socket='/path/to/mysql.sock',:flags=REMEMBER_OPTIONS|LONG_PASSWORD|LONG_FLAG|TRANSACTIONS|PROTOCOL_41|SECURE_ConNECTION|MULTI_STATEMENTS,:encoding='utf8',:read_timeout=seconds,:write_timeout=seconds,:connect_timeout=seconds,:connect_attrs={:program_name=>$PROGRAM_NAME,...},:reconnect=true/false,:local_infile=true/false,:secure_auth=true/false,:ssl_mode=:disabled/:preferred/:required/:verify_ca/:verify_identity,:default_file='$HOME/.my.cnf',#=>从文件读取连接信息:default_group='my.cfgsection',#=>选择.my.cnf中的section:default_auth='authentication_windows_client',:init_command=>SQL_Statement#=>主要用于设置本次连接时的某些变量)

连接建立后就可以操作数据库了,比如执行SQL语句:

conn.query('createdatabsemytest')conn.select_db('mytest')#conn.query('usemytest')conn.query('createtabletb(namevarchar(1024),ageint)')conn.query<<-SQLinsertintotbvalues('junmajinlong',23),('woniu',25),('fairy',26)SQL

如果测试和mysql的连接是否断开,可执行ping():

conn.ping

如果连接未断开,ping()返回true,如果连接已断开但已启用auto-reconnect,则ping()会尝试依次reconnect,连接成功则返回true,否则报错。如果连接已断开,且未启用auto-reconnect,则报错。

query()查询和结果处理

query()用于执行任何允许的SQL语句,比如执行查询语句。

查询结果可使用each进行迭代,迭代时传递查询到的每一行记录,可使用hash索引的方式(默认以hash类型保存每一行)查询某个字段的内容:

conn.query("showdatabases").eachdo|row|pprowend=begin{"Database"=>"information_schema"}{"Database"=>"mysql"}{"Database"=>"mytest"}{"Database"=>"performance_schema"}{"Database"=>"sys"}=endconn.query("select*frommytest.tb").eachdo|row|pprowpprow["name"]end=begin{"name"=>"junmajinlong","age"=>23}"junmajinlong"{"name"=>"woniu","age"=>25}"woniu"{"name"=>"fairy","age"=>26}"fairy"=end

可见,查询结果中,每一行数据默认以hash格式保存。

实际上,对于增删改的SQL语句,query()的返回值为nil,对于查询类的语句,其返回值以Mysql2::Result对象返回

conn.query("createtablemytest.t1(idint)")#=>nilres=conn.query("select*frommytest.tb")pres

结果:

#<Mysql2::Result:0x00007fffe833a230@query_options={:as=>:hash,:async=>false,:cast_booleans=>false,:symbolize_keys=>false,:database_timezone=>:local,:application_timezone=>nil,:cache_rows=>true,:connect_flags=>2148540933,:cast=>true,:default_file=>nil,:default_group=>nil,:host=>"192.168.200.73",:username=>"root",:password=>"P@ssword1!"},@server_flags={:no_good_index_used=>false,:no_index_used=>true,:query_was_slow=>false}>

query()各查询选项的含义以及默认的查询选项参见下文。先了解两个:

  • • MySQL备份与恢复策略是什么

    MySQL备份与恢复策略是确保数据库数据安全和业务连续性的关键。以下是一些常见的备份与恢复策略:备份策略全量备份:备份整个数

  • • 如何配置MySQL主从复制

    配置MySQL主从复制涉及多个步骤,包括设置主服务器、从服务器以及确保数据同步。以下是一个基本的步骤指南:1. 准备环境主服务器

  • • 如何监控MySQL服务器性能

    监控MySQL服务器性能是确保数据库高效稳定运行的关键。以下是一些常用的监控方法和工具:监控方法查询性能指标:关注查询的执行

  • • MySQL事务处理如何保证数据一致性

    MySQL事务处理通过使用ACID(原子性、一致性、隔离性和持久性)原则来保证数据一致性。下面详细解释这些原则以及如何在MySQL中实

  • • MySQL日志文件的作用和管理方法

    MySQL日志文件在数据库运维中起着至关重要的作用,它们帮助数据库管理员进行故障排查、性能优化和数据恢复等。以下是MySQL日志文

  • biubiu加速器
    九游优盟游戏推广平台
    九游推广联盟
    digdig游戏入口
    4999小游戏大全
    九游游戏网
    站长素材
    植物大战僵尸杂交免费版
    站长之家
    测速网在线测网速
    354211邮编查询,354211邮政编码查询
    354209邮编查询,354209邮政编码查询
    353132邮编查询,353132邮政编码查询
    354215邮编查询,354215邮政编码查询
    353121邮编查询,353121邮政编码查询
    354213邮编查询,354213邮政编码查询
    353125邮编查询,353125邮政编码查询
    354201邮编查询,354201邮政编码查询
    353101邮编查询,353101邮政编码查询
    354200邮编查询,354200邮政编码查询