Ruby安装并链接数据库

    在公司工做中不可避免的须要洗数据、校验数据。这个时候会发现会脚本真的酷毙了。看着公司的大牛用的是Ruby就试着用了下。并记录以下:java

第一 安装mysql

    首先简单介绍下安装吧:git

使用rvm(Ruby Version Manager一款很是好用的ruby版本管理以及安装工具)你会发现Ruby安装真的是It's so earygithub

(1)安装rvm:sql

  网上说的安装命令是curl -L get.rvm.io | bash -s stable数据库

  可是发现不行,正确命令是ruby

curl -k  https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable

   好了。默默的等着他安装rvm吧。安装好rvm其实就基本上就KO了。下面安装Ruby吧!bash

(2)安装rubyssh

    查看已有的ruby版本:rvm list knowncurl

    安装一个指定版本:rvm install 2.2.1

    使用指定版本并设置为默认:rvm use 2.2.1 --default

    查询已经安装的ruby: rvm list

    卸载一个已安装版本: rvm remove 1.9.2

    在使用rvm安装Ruby时会自动给咱们安装上一个叫RubyGems(简称 gems)的东东。它用于对 Ruby组件进行打包的 Ruby打包系统。 可是 必须支出的是我国的特殊状况,在使用gems可能超时须要咱们修改镜像

(3)修改镜像

使用命令gem source --add 'http://ruby.taobao.org/' 修改为淘宝的镜像。

gem source -l 命令查看镜像

更详细的请看:http://ruby.taobao.org/

    好了至此安装完成了。

第二 经过ssh链接mysql

    我本觉得能够开启我Ruby的神之旅时被卡住了卡死了。由于公司对线上的机器所有采用的是跳板机。链接时连不上啊。网上找教程各类坑啊。都是一份代码反复复制唉!让咱们这些菜鸟怎么学习啊!!!我要在本地(A)经过跳板机(B)链接数据库机器(C)。怎么玩都玩不转啊。我闭关苦思冥想了几天仍是无法解决。神同样的Ruby之旅难道就次卡住.....NO今每天一道紫色闪电划过天空。我懂了...记录以下

(1)安装各类插件(我是这么理解的)

使用gem命令安装插件:在 https://rubygems.org/ 上搜索你想要的插件

想链接mysql至少得安装mysql链接插件吧:

gem install mysql2

固然这样的前提是你安装了mysql并配置好了环境。若是你本身本地没有安转好。我只能说若是成功纯属巧合。

想要进过跳板机只是得安装net-ssh-gateway吧

gem install net-ssh-gateway

(2)敲代码吧

新建一个.rb的文件写吧:

# encoding: utf-8
require 'rubygems'
require 'mysql2'
require 'net/ssh/gateway'

begin
  puts "Initializing Ruby Program"
  puts "Initializing ssh"
  @gateway = Net::SSH::Gateway.new(
    'HostB',
    'User',
    :password => '********',
    :port => '22'
  )
  @port = @gateway.open('HostC',3306,3307)#注意3306是你数据库的端口号至于3307是随便选的,只要没被占用
  if @gateway.active?
    puts "ssh success connect"
  end

  puts "Initializing mysql"
  @client = Mysql2::Client.new(
      host:'127.0.0.1',#注意这里是本地不用改的。我就是改了这儿才被坑的啊
      username:'root',
      password:'mysqlpassword',
      database:'DB',
      port:@port
  )
  puts "connected mysql"

  res = @client.query("SELECT * FROM T_XXXXX")
  puts "The count #{res.count}个"
  puts "The fields of the res:#{res.fields}"
  puts "The each row:"
  i=0;
  res.each do |row|
    i+=1
    puts "第#{i}行#{row}"
  end

  puts "close mysql"
  @client.close
  puts "free ssh"
  @gateway.close(@port)
  @gateway.shutdown!
  puts "Terminating Ruby Program"
end

注意HostB:跳板机的hostHostC:数据库的host

至此终于能够开始我之后写Ruby脚本的装B模式啦......

相关文章
相关标签/搜索