萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL Utilities連接MySQL服務器教程

MySQL Utilities連接MySQL服務器教程

上教程我們講了MySQL管理工具MySQL Utilities的介紹及安裝,本教程我們來講解如何通過MySQL Utilities或MySQL Utilities庫方法連接到MySQL服務器。

連接參數

連接到一個服務器,必須指定連接參數,如用戶名,主機名稱,密碼,端口號,socket。MySQL Utilities提供了三種提供這些參數的方法,這些方法都需要通過命令行指定。

    使用.mylogin.cnf文件(加密的,不可見的)。如:<login-path>[:<port>][:<socket>]
    使用配置文件(未加密的,不可見的)。只適用於1.5.0以上版本。如:<configuration-file-path>[:<section>]
    在命令行指定(未加密的,可見的)。如: <user>[:<passwd>]@<host>[:<port>][:<socket>]

使用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:


將會在家目錄下創建一個隱藏的加密文件.mylogin.cnf。

查看.mylogin.cnf 內容:

 代碼如下 復制代碼 # ./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

也可以自定義,如下:

 代碼如下 復制代碼 # 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.


 使用配置文件


MySQL Utilities也可以接受服務器連接數據的配置路徑和段。這就允許你存儲的一個或多個部分的連接信息。將數據保存在配置文件中比在命令行指定安全,但是,該文件是個文本文件,只有能訪問到該文件,任何人可讀的。

 代碼如下 復制代碼 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.


使用命令行

通過命令行參數指定連接服務器信息,這種方式是最不安全的,數據在命令行可見,在日志文件中亦是可見的。

這種方式下,指定參數的順序為:<user>[:<passwd>]@<host>[:<port>][:<socket>] 。方括號代表是可選的參數。

實例參見上面的。
在Python庫中定義

如果使用MySQL Utilities庫文件來創建自己的工具,你會遇到各種各樣的連接方式。

可選的方法有:

    一個含有連接參數的Python字典.
    一個含有連接參數的字符串.
    指定一個服務器實例.

字典格式如下:

 代碼如下 復制代碼 # Set connection values
dest_values = {
    "user" : "root",
    "passwd" : "secret",
    "host" : "localhost",
    "port" : 3308,
    "unix_socket" : None,
}

字符串格式為:

 代碼如下 復制代碼 <user>[:<passwd>]@<host>[:<port>][:<socket>]

中括號是可選參數。

該連接字符串通過使用options.parse_connection函數進行解析。

也可以指定服務器類的一個實例,在這種情況下,新類將復制這些連接信息。

copyright © 萬盛學電腦網 all rights reserved