您好,登錄后才能下訂單哦!
mysql_config_editor工具能讓你在一種加密的登錄路徑文件.mylogin.cnf中存儲審核身份信息。在Windows中這個文件存儲在%APPDATA%\MySQL目錄中,在非Windows平臺上存儲在當前用戶的home目錄中。這種文件可以被MySQL客戶端程序讀取來獲得連接MySQL服務器的審核身份信息。
沒有加密的.mylogin.cnf登錄路徑文件由選項組組成。類似于其它的選項文件。在.mylogin.cnf文件中的每個選項組叫作"login path"登錄路徑,它是只允許特定選項的組:host,user,password,port和socket。可以把一個登錄路徑選項組認為是一組選項來指定使用那個用戶來連接那個MySQL服務器的信息。下面是沒有加密的登錄路徑信息的
例子:
[client] user = mydefaultname password = mydefaultpass host = 127.0.0.1 [mypath] user = myothername password = myotherpass host = localhost
當調用一個客戶端程序連接MySQL服務器時,客戶端使用.mylogin.cnf并結合其它的選項文件。它的優先級比其它的選項文件要高,但比在客戶端命令行中顯式指定的要低。
為了指定一個替代的登錄路徑文件名,設置MYSQL_TEST_LOGIN_FILE環境變量。這種變量通過mysql_config_editor,通過標準的MySQL客戶端(mysql,mysqladmin等)工具和mysql-test-run.pl測試工具所識別。
程序以以下方式使用登錄路徑文件中的選項組:
.mysql_config_editor在你沒有通過--login-path=name選項來顯式指定登錄路徑時缺省情況下會使用client選項組。
.在沒有使用--login-path選項的情況下,客戶端程序將像從其它選項文件中讀取信息一樣從登錄路徑文件中讀取選項組。比如:
shell>mysql
缺省情況下,mysql客戶端程序將從其它的選項文件中讀取[client]和[mysql]選項組,因此也會從登錄路徑文件中讀取這些信息。
.使用--login-path選項,客戶端程序額外從登錄路徑文件中訊取命名的登錄路徑。仍然與讀取其它選項文件中的選項組一樣。比如:
shell>mysql --login-path=mypath
mysql客戶端程序將從其它選項文件中讀取[client]和[mysql]選項組信息和從登錄路徑文件中讀取[client]和[mysql]選項組信息。
.即使當--no-defaults選項被使用,客戶端程序也會讀取登錄路徑文件。這允許使用一種安全的方式來指定密碼而不而在命令行中指定。
mysql_config_editor會對.mylogin.cnf文件進行加密因此它不能以明文方式被讀取,并且當客戶端程序解密時,它的內容只在內存中使用。通過這種方式,密碼可以以非明文格式存儲在文件中并且在以后的命令行或環境變量需要使用時不需要提供輸入密碼。mysql_config_editor提供了一個print命令來顯示登錄路徑文件的內容,但即使在這種情況下,密碼值也會被隱藏,這樣就不會以其他用戶可以看到的方式出現
通過mysql_config_editor加密阻止密碼以明文方式出現在.mylogin.cnf文件中并通過阻止無意暴露密碼提供了一種安全措施。例如,如果你在屏幕上以非加密方式來顯示my.cnf選項文件中的信息時,它包含的任何密碼對于任何人都是可見的。使用.mylogin.cnf文件不是這種情況。但是使用的加密不會阻止一個有決心的攻擊者,你不應該認為它是不可攻破的。如果用戶能夠獲得您機器上的系統管理權限來訪問您的文件,那么他可以輕松地解密.mylogin.cnf文件
登錄路徑文件必須對當前用戶可讀和可寫并且對其它用戶來說不可以訪問。否則,mysql_config_editor會忽略它,并且客戶端程序不會使用它。
mysql_config_editor語法:
shell>mysql_config_editor [program options] [command [command options]]
如果登錄路徑文件不存在,mysql_config_editor會創建它。
mysql_config_editor命令有以下參數選項:
.program_options由通用的mysql_config_editor選項組成。
.command指示對.mylogin.cnf登錄路徑文件執行的操作。例如,set將寫一個登錄路徑到文件中,remove將刪除一個登錄路徑,print顯示登錄路徑內容。
.command_options指示任何指定給命令的額外選項,比如登錄路徑名和登錄路徑所使用的值。
命令名在程序參數集中的位置很重要。例如,這些命令行具有相同的參數,但產生不同的結果:
[mysql@localhost ~]$ mysql_config_editor --help set mysql_config_editor Ver 1.0 Distrib 5.7.26, for Linux on x86_64 Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. MySQL Configuration Utility. Usage: mysql_config_editor [program options] [command [command options]] -#, --debug[=#] This is a non-debug version. Catch this and exit. -?, --help Display this help and exit. -v, --verbose Write more information. -V, --version Output version information and exit. Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ---------------------------------------- verbose FALSE Where command can be any one of the following : set [command options] Sets user name/password/host name/socket/port for a given login path (section). remove [command options] Remove a login path from the login file. print [command options] Print all the options for a specified login path. reset [command options] Deletes the contents of the login file. help Display this usage/help information. [mysql@localhost ~]$ mysql_config_editor set --help mysql_config_editor Ver 1.0 Distrib 5.7.26, for Linux on x86_64 Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. MySQL Configuration Utility. Description: Write a login path to the login file. Usage: mysql_config_editor [program options] [set [command options]] -?, --help Display this help and exit. -h, --host=name Host name to be entered into the login file. -G, --login-path=name Name of the login path to use in the login file. (Default : client) -p, --password Prompt for password to be entered into the login file. -u, --user=name User name to be entered into the login file. -S, --socket=name Socket path to be entered into login file. -P, --port=name Port number to be entered into login file. -w, --warn Warn and ask for confirmation if set command attempts to overwrite an existing login path (enabled by default). (Defaults to on; use --skip-warn to disable.) Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ---------------------------------------- host (No default value) login-path client user (No default value) socket (No default value) port (No default value) warn TRUE
第一個命令行顯示了通用的mysql_config_editor的幫助信息并且忽略了set命令。第二個命令行是顯示了set命令的特定幫助信息。
假設想要建立一個client登錄路徑來定義你的缺省連接參數和額外的remote登錄路徑來連接遠程服務器。想要記錄以下信息:
.缺省情況,連接到本地服務器的用戶名與密碼為root和xxzx7817600
.連接到遠程服務器的用戶名與密碼為root和123456
為了在.mylogin.cnf文件中設置登錄路徑,使用下面的set命令。每個命令單獨一行執行并且根據提示輸入相關的密碼:
[mysql@localhost ~]$ mysql_config_editor set --login-path=client --host=192.168.1.250 --user=root --password Enter password: [mysql@localhost ~]$ mysql_config_editor set --login-path=remote --host=192.168.1.251 --user=root --password --port=33306 Enter password: [mysql@localhost ~]$
mysql_config_editor缺省情況下使用client登錄路徑,因此--login-path=client選項從第一個命令中可以被忽略而不會產生影響。
為了查詢mysql_config_editor寫入.mylogin.cnf文件的內容,執行print命令:
[mysql@localhost ~]$ mysql_config_editor print --all [client] user = root password = ***** host = 192.168.1.250 [remote] user = root password = ***** host = 192.168.1.251 port = 33306
print命令以一組行集合來顯示每個登錄路徑,在方括號中的選項組頭指示了登錄路徑名,接著是登錄路徑的選項值。密碼值以星號出現不是以明文來顯示。
如果你在執行print命令時不指定--all選項來顯示所有的登錄路徑或不使用--login-path=name來顯示指定的登錄路徑,如果存會client登錄路徑,那么缺省情況下print命令只會顯示client登錄路徑。
[mysql@localhost ~]$ mysql_config_editor print [client] user = root password = ***** host = 192.168.1.250
通過上面的例子可以看到一個登錄路徑文件可以包含多個登錄路徑。使用這種方式,mysql_config_editor可以簡單地多個個性化的登錄路徑來連接到不同的MySQL服務器或者使用不同的賬號連接到指定的服務器。這些登錄路徑都可以在調用客戶端程序時通過使用--login-path選項來使用。例如,為了連接到遠程服務器,執行以下命令:
[mysql@localhost ~]$ mysql --login-path=remote Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 56674 Server version: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
上面的命令mysql從其它選項文件中讀取[client]和[mysql]選項組并且從登錄路徑文件中讀取[mysql]和[remote]選項組信息。
為了連接到本地服務器,執行以下命令
[mysql@localhost ~]$ mysql --login-path=client Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.26 Source distribution Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
因為缺省情況下mysql讀取登錄路徑文件中的client和mysql登錄路徑,在這種情況下--login-path選項不會增加其它登錄路徑。因此上面的命令等價下面的命令:
[mysql@localhost ~]$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.26 Source distribution Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
從登錄路徑文件讀取的選項優先于從其他選項文件讀取的選項。從登錄路徑文件中稍后出現的登錄路徑組讀取的選項優先于從文件中較早出現的登錄路徑組讀取的選項。
mysql_config_editor向登錄路徑文件增加登錄路徑的順序就是創建它們的順序,因此應該先創建更多的通用登錄路徑,后創建特定登錄路徑。如果想要在登錄路徑文件中移動一個登錄路徑,可以先刪除它,然后再重新創建它。例如一個client登錄路徑很通用,因為所有的客戶端程序將會讀取它,而mysqldump登錄路徑只能由mysqldump程序來讀取。后指定的選項會覆蓋先指定的選項,因此以client,mysqldump順序來創建登錄路徑,mysqldump程序能讓mysqldump的特定選項覆蓋client的選項。
在使用mysql_config_editor的set命令來創建一個登錄路徑時不需要指定所有可能選項值(主機名,用戶名,密碼,端口號,socket)。只有指定的值會被寫入登錄路徑。任何丟失而在調用客戶端程序連接服務器時所需要的選項可以在其它選項文件或命令行中批定。任何在命令行中指定的選項值會覆蓋在登錄路徑文件或其它選項文件中所指定的選項值。例如,如果在remote登錄路徑中指定了端口號33306,現在假設遠程服務器端口變為3306了,那么連接服務器命令如下:
[mysql@localhost ~]$ mysql --login-path=remote -P3306 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 56674 Server version: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
命令行指定的端口號覆蓋登錄路徑中指定的端口號
可以使用remove命令來刪除登錄路徑或登錄路徑中的某些選項刪除remote登錄路徑中的--port選項
[mysql@localhost ~]$ mysql_config_editor print --login-path=remote [remote] user = root password = ***** host = 192.168.1.250 port = 33306 [mysql@localhost ~]$ mysql_config_editor remove --login-path=remote --port [mysql@localhost ~]$ mysql_config_editor print --login-path=remote [remote] user = root password = ***** host = 192.168.1.250
刪除刪除remote登錄路徑
[mysql@localhost ~]$ mysql_config_editor remove --login-path=remote [mysql@localhost ~]$ mysql_config_editor print --login-path=remote
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。