不暴露mysql服务器_MySQL管理工具MySQL Utilities — 如何连接MySQL服务器(2)

本节将描述下如何通过MySQL Utilities或者通过MySQL Utilities库方法连接到MySQL服务器。

连接参数

连接到一个服务器,必须指定连接参数,如用户名,主机名称,密码,端口号,socket。MySQL Utilities提供了三种提供这些参数的方法,这些方法都需要通过命令行指定。

使用.mylogin.cnf文件(加密的,不可见的)。如:[:][:]

使用配置文件(未加密的,不可见的)。只适用于1.5.0以上版本。如:[:]

在命令行指定(未加密的,可见的)。如: [:]@[:][:]

使用login-paths(.mylogin.cnf)

使用该方法连接数据库是最好的。不仅是文件加密的,而且任何执行的记录不会暴露连接信息。因此,日志中用户名、密码、端口等信息是不可见的。这是使用MySQL Utilities工具连接数据库的首选方法。

注意:MySQL Utilities1.2.1以及以后版本支持login-paths方法。

连接的字符串格式为: login-path-name[:port][:socket]。其中port、socket是可选的参数。如果指定,将覆盖login-path中定义的。

当使用login-paths时,除了Posix系统没有默认值,当指定套接字时。在这种情况下,host选项默认值是localhost。这就意味着,结合login-path指定值有两个可选值port和socket选择,至少需要指定一个用户名、一个主机名、一个port或一个socket。

使用mysql_config_editor工具添加如下连接信息:

# cd /usr/local/mysql5.6/

# ./bin/mysql_config_editor set --login-path=instance_3366 --host=localhost --user=root --port=3366 --password

Enter password:

1

2

3

# cd /usr/local/mysql5.6/

# ./bin/mysql_config_editor set --login-path=instance_3366 --host=localhost --user=root --port=3366 --password

Enterpassword:

将会在家目录下创建一个隐藏的加密文件.mylogin.cnf。

查看.mylogin.cnf 内容:

# ./bin/mysql_config_editor print --login-path=instance_3366

[instance_3366]

user = root

password = *****

host = localhost

port = 3366

1

2

3

4

5

6

# ./bin/mysql_config_editor print --login-path=instance_3366

[instance_3366]

user=root

password=*****

host=localhost

port=3366

一旦配置了.mylogin.cnf文件,就只需要指定.mylogin.cnf文件中的服务器段进行连接。如,在前面的示例中创建了“instance_3366”服务段。因此,我们可以使用--server=instance_3366。如下所示指定部分的登录路径:

# mysqlserverinfo --server=instance_3366 --format=vertical

1

# mysqlserverinfo --server=instance_3366 --format=vertical

也可以自定义,如下:

# mysqlserverinfo --server=root:@localhost:3366:/tmp/mysql3366.sock --format=vertical

WARNING: Using a password on the command line interface can be insecure.

# Source on localhost: ... connected.

************************* 1. row *************************

server: localhost:3366

config_file: /usr/local/mysql5.6/my.cnf, ./my.cnf

binary_log: master-bin.000003

binary_log_pos: 151

relay_log:

relay_log_pos:

version: 5.6.16-log

datadir: /usr/local/mysql5.6/data/

basedir: /usr/local/mysql5.6

plugin_dir: /usr/local/mysql5.6/lib/plugin/

general_log: OFF

general_log_file:

general_log_file_size:

log_error: /usr/local/mysql5.6/data/localhost.err

log_error_file_size: 2238 bytes

slow_query_log: OFF

slow_query_log_file:

slow_query_log_file_size:

1 row.

#...done.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# mysqlserverinfo --server=root:@localhost:3366:/tmp/mysql3366.sock  --format=vertical

WARNING:Usingapasswordonthecommandlineinterfacecanbeinsecure.

# Source on localhost: ... connected.

*************************1.row *************************

server:localhost:3366

config_file:/usr/local/mysql5.6/my.cnf,./my.cnf

binary_log:master-bin.000003

binary_log_pos:151

relay_log:

relay_log_pos:

version:5.6.16-log

datadir:/usr/local/mysql5.6/data/

basedir:/usr/local/mysql5.6

plugin_dir:/usr/local/mysql5.6/lib/plugin/

general_log:OFF

general_log_file:

general_log_file_size:

log_error:/usr/local/mysql5.6/data/localhost.err

log_error_file_size:2238bytes

slow_query_log:OFF

slow_query_log_file:

slow_query_log_file_size:

1row.

#...done.

使用配置文件

MySQL Utilities也可以接受服务器连接数据的配置路径和段。这就允许你存储的一个或多个部分的连接信息。将数据保存在配置文件中比在命令行指定安全,但是,该文件是个文本文件,只有能访问到该文件,任何人可读的。

my.cnf连接段如下所示:

# vim my.cnf

[client]

port = 3366

socket = /tmp/mysql3366.sock

user=root

1

2

3

4

5

# vim my.cnf

[client]

port=3366

socket=/tmp/mysql3366.sock

user=root

使用配置文件:

# mysqlserverinfo --server=/usr/local/mysql5.6/my.cnf[client] --format=vertical

# Source on localhost: ... connected.

************************* 1. row *************************

server: localhost:3366

config_file: /usr/local/mysql5.6/my.cnf, ./my.cnf

binary_log: master-bin.000003

binary_log_pos: 151

relay_log:

relay_log_pos:

version: 5.6.16-log

datadir: /usr/local/mysql5.6/data/

basedir: /usr/local/mysql5.6

plugin_dir: /usr/local/mysql5.6/lib/plugin/

general_log: OFF

general_log_file:

general_log_file_size:

log_error: /usr/local/mysql5.6/data/localhost.err

log_error_file_size: 2238 bytes

slow_query_log: OFF

slow_query_log_file:

slow_query_log_file_size:

1 row.

#...done.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# mysqlserverinfo --server=/usr/local/mysql5.6/my.cnf[client] --format=vertical

# Source on localhost: ... connected.

*************************1.row *************************

server:localhost:3366

config_file:/usr/local/mysql5.6/my.cnf,./my.cnf

binary_log:master-bin.000003

binary_log_pos:151

relay_log:

relay_log_pos:

version:5.6.16-log

datadir:/usr/local/mysql5.6/data/

basedir:/usr/local/mysql5.6

plugin_dir:/usr/local/mysql5.6/lib/plugin/

general_log:OFF

general_log_file:

general_log_file_size:

log_error:/usr/local/mysql5.6/data/localhost.err

log_error_file_size:2238bytes

slow_query_log:OFF

slow_query_log_file:

slow_query_log_file_size:

1row.

#...done.

使用命令行

通过命令行参数指定连接服务器信息,这种方式是最不安全的,数据在命令行可见,在日志文件中亦是可见的。

这种方式下,指定参数的顺序为:[:]@[:][:] 。方括号代表是可选的参数。

实例参见上面的。

如果使用MySQL Utilities库文件来创建自己的工具,你会遇到各种各样的连接方式。

可选的方法有:

一个含有连接参数的Python字典.

一个含有连接参数的字符串.

指定一个服务器实例.

字典格式如下:

# Set connection values

dest_values = {

"user" : "root",

"passwd" : "secret",

"host" : "localhost",

"port" : 3308,

"unix_socket" : None,

}

1

2

3

4

5

6

7

8

# Set connection values

dest_values={

"user":"root",

"passwd":"secret",

"host":"localhost",

"port":3308,

"unix_socket":None,

}

字符串格式为:

[:]@[:][:]

中括号是可选参数。

该连接字符串通过使用options.parse_connection函数进行解析。

也可以指定服务器类的一个实例,在这种情况下,新类将复制这些连接信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值