require
'rubygems'
require
'active_record'
require
'mysql2'
require
'net/ssh/gateway'
gateway
=
Net
:
:SSH
::
Gateway
.
new
(
'remotehost.com'
,
'username'
)
# opens a new port on the established gateway
port
=
gateway
.
open
(
'127.0.0.1'
,
3306
,
3307
)
# use cmd line to verify connection over ssh tunnel
# mysql -u root -h 127.0.0.1 --port 3307
client
=
Mysql2
:
:Client
.
new
(
host
:
"127.0.0.1"
,
username
:
'root'
,
password
:
''
,
database
:
'app_development'
,
port
:
port
)
results
=
client
.
query
(
"SELECT * FROM projects"
)
results
.
each
do
|
row
|
p
row
end
1. [代码][Ruby]代码
2 | dbc = Mysql.real_connect( '127.0.0.1' , 'root' , '123' , 'test' ) |
3 | res = dbc.query( 'select * from users' ) |
4 | while row = res.fetch_row do |
5 | puts "#{row[0]},#{row[1]}" |
2. [代码]mysql2连接
2 | client = Mysql2::Client. new ( :host => "主机地址" , :username => "用户名" , :password => "密码" , :database => "数据库" ) |
3 | results = client.query( "select * from 数据表" ); |
5 | puts hash.map { |k,v| "#{k} = #{v}" }.join( ", " ) |
client
.
close
gateway
.
shutdown!
class
Company
<
ActiveRecord
:
:Base
establish_connection
(
:adapter
=>
"mysql2"
,
:host
=>
"127.0.0.1"
,
:username
=>
"root"
,
:password
=>
""
,
:database
=>
"app_development"
,
:port
=>
3307
# have to specify the forwarded port for this example due to class scope
)
end
puts
Company
.
all
.
size
所有评论(0)