上一節(jié)教程我們講了MySQL管理工具MySQL Utilities的介紹及安裝,本教程我們來講解如何通過MySQL Utilities或MySQL Utilities庫方法連接到MySQL服務(wù)器.
連接參數(shù):連接到一個服務(wù)器,必須指定連接參數(shù),如用戶名,主機名稱,密碼,端口號,socket,MySQL Utilities提供了三種提供這些參數(shù)的方法,這些方法都需要通過命令行指定.
使用.mylogin.cnf文件(加密的,不可見的),如:<login-path>[:<port>][:<socket>]
使用配置文件(未加密的,不可見的),只適用于1.5.0以上版本,如:<configuration-file-path>[:<section>]
在命令行指定(未加密的,可見的),如:<user>[:<passwd>]@<host>[:<port>][:<socket>]
使用login-paths(.mylogin.cnf)
使用該方法連接數(shù)據(jù)庫是最好的,不僅是文件加密的,而且任何執(zhí)行的記錄不會暴露連接信息,因此,日志中用戶名、密碼、端口等信息是不可見的,這是使用MySQL Utilities工具連接數(shù)據(jù)庫的首選方法.
注意:MySQL Utilities1.2.1以及以后版本支持login-paths方法.
連接的字符串格式為:login-path-name[:port][:socket],其中port、socket是可選的參數(shù),如果指定,將覆蓋login-path中定義的.
當(dāng)使用login-paths時,除了Posix系統(tǒng)沒有默認(rèn)值,當(dāng)指定套接字時。在這種情況下,host選項默認(rèn)值是localhost。這就意味著,結(jié)合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:
將會在家目錄下創(chuàng)建一個隱藏的加密文件.mylogin.cnf,查看.mylogin.cnf 內(nèi)容,代碼如下:
- # ./bin/mysql_config_editor print --login-path=instance_3366
- [instance_3366] --Vevb.com
- user = root
- password = *****
- host = localhost
- port = 3366
一旦配置了.mylogin.cnf文件,就只需要指定.mylogin.cnf文件中的服務(wù)器段進行連接。如,在前面的示例中創(chuàng)建了“instance_3366”服務(wù)段,因此,我們可以使用–server=instance_3366。如下所示指定部分的登錄路徑:
# 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 --Vevb.com
- 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.
使用配置文件
MySQL Utilities也可以接受服務(wù)器連接數(shù)據(jù)的配置路徑和段,這就允許你存儲的一個或多個部分的連接信息,將數(shù)據(jù)保存在配置文件中比在命令行指定安全,但是,該文件是個文本文件,只有能訪問到該文件,任何人可讀的,my.cnf連接段如下所示:
- # 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.
使用命令行
通過命令行參數(shù)指定連接服務(wù)器信息,這種方式是最不安全的,數(shù)據(jù)在命令行可見,在日志文件中亦是可見的.
這種方式下,指定參數(shù)的順序為:<user>[:<passwd>]@<host>[:<port>][:<socket>],方括號代表是可選的參數(shù).
實例參見上面的.
在Python庫中定義
如果使用MySQL Utilities庫文件來創(chuàng)建自己的工具,你會遇到各種各樣的連接方式.
可選的方法有:
一個含有連接參數(shù)的Python字典,一個含有連接參數(shù)的字符串,指定一個服務(wù)器實例.
字典格式如下:
- # Set connection values
- dest_values = {
- "user" : "root",
- "passwd" : "secret",
- "host" : "localhost",
- "port" : 3308,
- "unix_socket" : None,
- }
字符串格式為:<user>[:<passwd>]@<host>[:<port>][:<socket>] 中括號是可選參數(shù)。
該連接字符串通過使用options.parse_connection函數(shù)進行解析,也可以指定服務(wù)器類的一個實例,在這種情況下,新類將復(fù)制這些連接信息.
新聞熱點
疑難解答
圖片精選