在ruby中使用MySql(MariaDB)进行IO.popen

时间:2017-09-26 15:28:08

标签: mysql ruby pipe mariadb popen

在我开始描述我的问题之前,我想指出我必须使用ruby版本1.8.6(解释为什么超出了这个线程的范围)。因此我不能使用像mysql,mysql2这样的gem模块。

我想要实现的是编写一个ruby程序,它与远程服务器上的MySQL数据库进行交互(在这种特殊情况下,MariaDB监视器作为监视模块 - > s.picture)

我设法运行以下代码:

command=String.new("mysql -h hostadress --protocol tcp --user=uname --password=passw dbname")
connection=IO.popen(command,'r+')     
connection.puts("SELECT \*FROM table WHERE name=\"match\" \\g")
connection.close_write
data=connection.read
p data

connection=IO.popen(command,'r+')     
connection.puts("SELECT \*FROM table WHERE name=\"match2\"\\g")
connection.close_write
data=connection.read
p data

但正如你所看到的,它非常难看,因为我必须一次又一次地打开数据库(我在实际的脚本中做了很多)。有一个优雅的解决方案只打开一次数据库(例如重新打开管道)? enter image description here

0 个答案:

没有答案