此程式可讓您透過下列方式改善 MySQL 安裝的安全性
您可以為
root
帳戶設定密碼。您可以移除可從本機主機外部存取的
root
帳戶。您可以移除匿名使用者帳戶。
您可以移除
test
資料庫(預設情況下,所有使用者,甚至匿名使用者都可以存取),以及允許任何人存取名稱以test_
開頭的資料庫的權限。
mysql_secure_installation 可協助您實作類似於第 2.9.4 節「保護初始 MySQL 帳戶」中所述的安全性建議。
正常用法是連線到本機 MySQL 伺服器;在不帶引數的情況下呼叫 mysql_secure_installation
mysql_secure_installation
執行時,mysql_secure_installation 會提示您決定要執行哪些動作。
validate_password
元件可用於密碼強度檢查。如果未安裝此外掛程式,mysql_secure_installation 會提示使用者是否要安裝它。如果啟用此外掛程式,之後輸入的任何密碼都會使用此外掛程式檢查。
大多數常見的 MySQL 用戶端選項 (例如 --host
和 --port
) 可以在命令列和選項檔案中使用。例如,若要使用連接埠 3307 透過 IPv6 連線到本機伺服器,請使用此命令
mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation 支援下列選項,這些選項可以在命令列或選項檔案的 [mysql_secure_installation]
和 [client]
群組中指定。如需有關 MySQL 程式使用的選項檔案的資訊,請參閱第 6.2.2.2 節「使用選項檔案」。
表 6.9 mysql_secure_installation 選項
選項名稱 | 描述 |
---|---|
--defaults-extra-file | 除了通常的選項檔案之外,還讀取指定的選項檔案 |
--defaults-file | 僅讀取指定的選項檔案 |
--defaults-group-suffix | 選項群組後綴值 |
--help | 顯示說明訊息並結束 |
--host | MySQL 伺服器所在的主機 |
--no-defaults | 不讀取任何選項檔案 |
--password | 接受,但永遠忽略。無論何時呼叫 mysql_secure_installation,都會提示使用者輸入密碼 |
--port | 連線的 TCP/IP 連接埠號碼 |
--print-defaults | 列印預設選項 |
--protocol | 要使用的傳輸協定 |
--socket | 要使用的 Unix 通訊端檔案或 Windows 具名管道 |
--ssl-ca | 包含受信任 SSL 憑證授權單位清單的檔案 |
--ssl-capath | 包含受信任 SSL 憑證授權單位憑證檔案的目錄 |
--ssl-cert | 包含 X.509 憑證的檔案 |
--ssl-cipher | 連線加密允許的密碼 |
--ssl-crl | 包含憑證撤銷清單的檔案 |
--ssl-crlpath | 包含憑證撤銷清單檔案的目錄 |
--ssl-fips-mode | 是否在用戶端啟用 FIPS 模式 |
--ssl-key | 包含 X.509 金鑰的檔案 |
--ssl-mode | 與伺服器連線所需的安全性狀態 |
--ssl-session-data | 包含 SSL 會期資料的檔案 |
--ssl-session-data-continue-on-failed-reuse | 是否在會期重複使用失敗時建立連線 |
--tls-ciphersuites | 加密連線允許的 TLSv1.3 密碼套件 |
--tls-sni-servername | 用戶端提供的伺服器名稱 |
--tls-version | 加密連線允許的 TLS 協定 |
--use-default | 在沒有使用者互動的情況下執行 |
--user | 連線到伺服器時要使用的 MySQL 使用者名稱 |
--help
,-?
命令列格式 --help
顯示說明訊息並結束。
-
命令列格式 --defaults-extra-file=檔案名稱
類型 檔案名稱 在全域選項檔案之後,但在(在 Unix 上)使用者選項檔案之前讀取此選項檔案。如果檔案不存在或無法存取,則會發生錯誤。如果
檔案名稱
不是絕對路徑名稱,則會以相對於目前目錄的方式來解譯它。如需此選項和選項檔案選項的其他資訊,請參閱第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
-
命令列格式 --defaults-file=檔案名稱
類型 檔案名稱 僅使用指定的選項檔案。如果檔案不存在或無法存取,將會發生錯誤。如果
file_name
不是絕對路徑名稱,則會將其解讀為相對於目前目錄的路徑。如需此選項和選項檔案選項的其他資訊,請參閱第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
-
命令列格式 --defaults-group-suffix=str
類型 字串 不僅讀取一般的選項群組,還讀取具有一般名稱且後綴為
str
的群組。例如,mysql_secure_installation 通常會讀取[client]
和[mysql_secure_installation]
群組。如果此選項指定為--defaults-group-suffix=_other
,則 mysql_secure_installation 也會讀取[client_other]
和[mysql_secure_installation_other]
群組。如需此選項和選項檔案選項的其他資訊,請參閱第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
--host=
,host_name
-h
host_name
命令列格式 --host
連線到指定主機上的 MySQL 伺服器。
-
命令列格式 --no-defaults
不讀取任何選項檔案。如果程式啟動因從選項檔案讀取未知選項而失敗,則可以使用
--no-defaults
來防止讀取這些選項。例外情況是,如果存在
.mylogin.cnf
檔案,則在所有情況下都會讀取該檔案。這允許以比命令列上更安全的方式指定密碼,即使使用--no-defaults
也是如此。若要建立.mylogin.cnf
,請使用 mysql_config_editor 工具。請參閱 第 6.6.7 節「mysql_config_editor — MySQL 組態工具」。如需此選項和選項檔案選項的其他資訊,請參閱第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
--password=
,password
-p
password
命令列格式 --password=password
類型 字串 預設值 [無]
此選項被接受但被忽略。無論是否使用此選項,mysql_secure_installation 始終會提示使用者輸入密碼。
--port=
,port_num
-P
port_num
命令列格式 --port=port_num
類型 數值 預設值 3306
對於 TCP/IP 連線,要使用的埠號。
-
命令列格式 --print-defaults
印出程式名稱及其從選項檔案取得的所有選項。
如需此選項和選項檔案選項的其他資訊,請參閱第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
--protocol={TCP|SOCKET|PIPE|MEMORY}
命令列格式 --protocol=type
類型 字串 預設值 [請參閱內文]
有效值 TCP
SOCKET
PIPE
MEMORY
用於連線至伺服器的傳輸協定。當其他連線參數通常導致使用您不想要的協定時,這會很有用。如需允許值的詳細資訊,請參閱第 6.2.7 節「連線傳輸協定」。
--socket=
,path
-S
path
命令列格式 --socket={file_name|pipe_name}
類型 字串 對於連線到
localhost
,要使用的 Unix socket 檔案,或者在 Windows 上,要使用的具名管道名稱。在 Windows 上,僅當伺服器啟動時啟用了
named_pipe
系統變數以支援具名管道連線時,此選項才適用。此外,連線必須是named_pipe_full_access_group
系統變數指定的 Windows 群組的成員。開頭為
--ssl
的選項會指定是否使用加密連線到伺服器,並指示在哪裡尋找 SSL 金鑰和憑證。請參閱加密連線的命令選項。--ssl-fips-mode={OFF|ON|STRICT}
命令列格式 --ssl-fips-mode={OFF|ON|STRICT}
已棄用 是 類型 列舉 預設值 OFF
有效值 OFF
ON
STRICT
控制是否在用戶端啟用 FIPS 模式。
--ssl-fips-mode
選項與其他--ssl-
選項的不同之處在於它不是用於建立加密連線,而是用於影響允許哪些加密操作。請參閱第 8.8 節「FIPS 支援」。xxx
允許使用下列
--ssl-fips-mode
值OFF
:停用 FIPS 模式。ON
:啟用 FIPS 模式。STRICT
:啟用「「嚴格」」FIPS 模式。
注意如果 OpenSSL FIPS 物件模組不可用,則
--ssl-fips-mode
唯一允許的值是OFF
。在這種情況下,將--ssl-fips-mode
設定為ON
或STRICT
會導致用戶端在啟動時產生警告並在非 FIPS 模式下運作。此選項已棄用。預計會在 MySQL 的未來版本中移除。
--tls-ciphersuites=
ciphersuite_list
命令列格式 --tls-ciphersuites=ciphersuite_list
類型 字串 使用 TLSv1.3 的加密連線所允許的密碼套件。該值是一個或多個以冒號分隔的密碼套件名稱的列表。此選項可命名的密碼套件取決於用於編譯 MySQL 的 SSL 程式庫。如需詳細資訊,請參閱第 8.3.2 節「加密連線 TLS 協定和密碼」。
--tls-sni-servername=
server_name
命令列格式 --tls-sni-servername=server_name
類型 字串 指定時,名稱會使用
mysql_options()
的MYSQL_OPT_TLS_SNI_SERVERNAME
選項傳遞至libmysqlclient
C API 程式庫。伺服器名稱不區分大小寫。若要顯示用戶端為目前工作階段指定的伺服器名稱(如果有的話),請檢查Tls_sni_server_name
狀態變數。伺服器名稱指示 (SNI) 是 TLS 協定的延伸(必須使用 TLS 延伸編譯 OpenSSL,此選項才能起作用)。SNI 的 MySQL 實作僅代表用戶端。
-
命令列格式 --tls-version=protocol_list
類型 字串 預設值 TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
(OpenSSL 1.1.1 或更高版本)TLSv1,TLSv1.1,TLSv1.2
(其他情況)加密連線所允許的 TLS 協定。該值是一個或多個以逗號分隔的協定名稱的列表。此選項可命名的協定取決於用於編譯 MySQL 的 SSL 程式庫。如需詳細資訊,請參閱第 8.3.2 節「加密連線 TLS 協定和密碼」。
-
命令列格式 --use-default
類型 布林值 以非互動方式執行。此選項可用於無人值守的安裝作業。
--user=
,user_name
-u
user_name
命令列格式 --user=user_name
類型 字串 用於連線至伺服器的 MySQL 帳戶的使用者名稱。