中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何配置服務器

發布時間:2021-11-06 11:46:48 來源:億速云 閱讀:194 作者:小新 欄目:MySQL數據庫

這篇文章主要為大家展示了“MySQL如何配置服務器”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL如何配置服務器”這篇文章吧。

MySQL服務器配置

1.       服務器配置

1.1.       MySQL 配置選項

在調用服務器(或客戶機)時可以在命令行上指定啟動選項,也可以在配置文件中指定啟動選項。 MySQL 客戶機程序會在啟動時查找配置文件,并使用相應的選項。

MySQL如何配置服務器

默認情況下,服務器在運行時使用其配置變量的預編譯值。但是,如果默認值不適合環境,則可添加運行時選項,讓服務器使用其他值來執行以下操作:

?  指定重要的目錄和文件的位置

?  控制服務器寫入的日志文件

?  覆蓋服務器與性能相關的變量的內置值(即,控制最大同時連接數以及緩沖區和高速緩存的大小)

?  在服務器啟動時啟用或禁用預編譯的存儲引擎

通過使用命令行選項或配置文件,或者使用兩者的組合,可以指定服務器啟動時的運行時選項(以更改其配置和行為)。命令行選項優先于配置文件中的任何設置。要了解服務器支持的選項,請在 shell 提示符下執行以下命令:

mysqld --verbose --help

注: 上述命令提供信息。該命令不會啟動 MySQL 服務器。

1)       使用配置文件的原因?

通過命令行調用服務器時,可以指定 --help 選項列出的任何服務器選項。但是,將它們在配置文件中列出會更有用,原因如下:

A.     將選項放在文件中后,不需要每次啟動服務器時都在命令行上指定選項。對于復雜的選項(如用于配置 InnoDB 表空間的選項),這樣做更加方便,并且更不容易出錯。

B.      如果所有服務器選項都在一個配置文件中,則可概覽服務器的配置情況。

MySQL 程序可以訪問多個配置文件中的選項。程序會查找每個標準配置文件,并讀取任何存在的配置文件。未發現指定文件時,不會發生錯誤。

要使用某個配置文件,可使用編輯器以純文本文件形式創建該文件。要創建或修改某個配置文件,必須擁有該文件的寫入權限。客戶機程序僅需要讀取訪問權限。

2)       配置文件組

配置文件中的選項按組進行組織,每個組前面有一個為組命名的 [group-name] 行。通常,組名稱是選項組適用的程序的類別或名稱。選項組示例包括:

[client]:用于指定適用于所有客戶機程序的選項。 [client] 組的一個常見用途是指定連接參數,因為在一般情況下,不管使用什么客戶機程序,都要建立到同一個服務器的連接。

[mysql] 和 [mysqldump]:分別用于指定適用于 mysql 和 mysqldump 客戶機的選項。此外,也可以單獨指定其他客戶機選項。

[server]:用于指定同時適用于 mysqld 和 mysqld_safe 服務器程序的選項。

[mysqld]、 [mysqld-5.6] 和 [mysqld_safe]:用于指定適用于不同服務器版本或啟動方法的選項。

3)       編寫配置文件

配置文件中組的簡短示例:

[client]

host = myhost.example.com

compress

[mysql]

show-warnings

要創建或修改某個配置文件,最終用戶必須擁有該文件的寫入權限。服務器本身僅需要讀取訪問權限;服務器讀取配置文件,但不創建或修改配置文件。在配置文件中寫入一個選項:

使用長選項格式(像命令行上使用的那樣),但省略前導短劃線。

如果某個選項取值,則允許在等號兩則加空格 ( = )。此規則不適用于在命令行上指定的選項。

示例中,請注意以下方面:

[client]:此組中的選項適用于所有標準客戶機。

- host:指定服務器主機名

- compress:指示客戶機/服務器協議對通過網絡發送的通信使用壓縮

[mysql]:此組中的選項僅適用于 mysql 客戶機。

- show-warnings:指示 MySQL 在每條語句后顯示任何當前警告

mysql 客戶機同時使用 [client] 和 [mysql] 組中的選項,因此將使用顯示的全部三個選項。

4)       配置文件位置

MySQL 服務器會在標準位置中查找文件。Linux 和 Windows 的標準文件不同,在 Linux 中,使用 my.cnf 文件。在 Windows 中,使用 my.ini 文件。

可以使用以下選項查看配置文件查找位置和組:

shell> mysql --help

標準配置文件如下:

Linux: 文件 /etc/my.cnf 用作所有用戶都使用的全局配置文件。可以在用戶的主目錄中創建特定于用戶的配置文件 .my.cnf。如果設置了 MYSQL_HOME 環境變量,則將搜索 $MYSQL_HOME/my.cnf 文件。

Windows: 程序按以下順序查找配置文件: Windows C:\ 目錄下的 my.ini 和my.cnf,然后是 C:\Windows(或 C:\WinNT)目錄。但是,因為 Windows 安裝向導將配置文件放在目錄C:\Program Files\MySQL\MySQL Server <version number> 中,因此在Windows 中,服務器還會搜索此目錄。

MySQL 命令行程序會在 MySQL 安裝目錄中搜索配置文件。

5)       配置文件中的啟動選項

MySQL如何配置服務器

要在配置文件中指定服務器選項,請在 [mysqld] 或 [server] 組下指示特定選項。

日志記錄: 可以通過啟用所需日志的類型為服務器啟用日志記錄。以下選項可啟用常規查詢日志、二進制日志和慢速查詢日志:

general_log

log-bin

slow_query_log

默認存儲引擎: 可以使用 --default-storage-engine 選項指定不同于 InnoDB的默認存儲引擎。

系統變量: 可以通過設置服務器系統變量值來定制服務器。例如,要增加允許的最大連接數,并增加 InnoDB 緩沖池數的默認值,可設置以下變量:

max_connections=200

innodb_buffer_pool_instances=4

共享內存: 在 Windows 上默認不啟用。可以使用 shared-memory 選項來啟用命名管道支持。

命名管道: 要啟用命名管道支持,請使用 enable-named-pipe 選項。

6)       樣例配置文件

MySQL 安裝提供了一個樣例配置文件:my-default.cnf。Linux對于 RPM 安裝,樣例配置文件在 /usr/share/mysql 中;對于 TAR 文件安裝,樣例文件在 MySQL 安裝目錄下的 share 目錄中。Windows: 配置文件位于 MySQL 安裝目錄 (my.ini) 中。

安裝過程將此文件復制到 /etc/my.cnf。如果已存在該文件,則將其復制到 /etc/my-new.cnf。在該文件中指定新選項可替換、添加或忽略標準選項。必須是命令行上的第一個選項:

--defaults-file=<file_name>

--defaults-extra-file=<file_name>

--no-defaults

在更改任何默認選項之前,請確保充分了解相應選項對服務器操作的影響。例如,有些設置會啟用特定的日志文件,或者會改變內存緩沖區的大小。

--defaults-file=<file_name>:使用指定位置的配置文件。

--defaults-extra-file=<file_name>:使用指定位置的其他配置文件。

--no-defaults:忽略所有配置文件。

例如,要僅使用 /etc/my-opts.cnf 文件而忽略標準配置文件,可以像下面這樣調用程序:

shell> mysql --defaults-file=/etc/my-opts.cnf

如果多次指定一個選項(不管是在同一個配置文件中,還是在多個配置文件中),則最后出現的選項值優先。

有關使用配置文件的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/option-files.html。

7)       顯示配置文件中的選項

通過使用 --print-defaults 選項執行 mysql 客戶機或者使用 my_print_defaults實用程序,可以查看讀取特定選項組的程序所使用的選項。輸出由各種選項組成,每個選項占一行,其形式與命令行上指定選項時相同。此輸出會因為配置文件設置而有差異。

my_print_defaults 接受以下選項:

--help, -?:顯示幫助信息并退出。

--config-file=<file_name>、 --defaults-file=<file_name>、

-c <file_name>:僅讀取指定的配置文件。

--debug=<debug_options>、 -# <debug_options>:寫入調試日志。

--defaults-extra-file=<file_name>、 --extra-file=<file_name>、-e <file_name>:在全局配置文件之后,但在用戶配置文件之前(在 Linux 上),讀取此配置文件。

--defaults-group-suffix=<suffix>、 -g <suffix>:讀取具有此后綴的組。

--no-defaults、 -n:返回一個空字符串。

--verbose、 -v:詳細模式。輸出有關程序行為的更多信息。

--version、 -V: 顯示版本信息并退出。

通過命令行按組顯示選項。[mysql] 和 [client] 組示例:

shell> my_print_defaults mysql client

--user=myusername

--password=secret

--host=localhost

--port=3306

--character-set-server=latin1

或者(對于相同的輸出):

mysql --print-defaults mysql client

8)       遮蔽驗證選項

建議不要使用 mysql -uroot -poracle 形式在命令行上指定口令。為方便起見,可以將口令放在 [client] 選項組中,但口令以純文本方式存儲,對配置文件有讀取訪問權限的任何人都能輕易地看到。利用 mysql_config_editor 實用程序,可以將驗證憑證存儲在加密的登錄文件.mylogin.cnf 中。在 Linux 和 UNIX 上,該文件位置是當前用戶的主目錄,在Windows 上是 %APPDATA%\MySQL 目錄。MySQL 客戶機程序以后可以讀取該文件以獲取用于連接到 MySQL 服務器的驗證憑證。加密方法是可逆的,因此不應假設憑證對任何有文件讀取權限的人都是安全的。相反,該功能使得避免使用純文本憑證變得更容易。

.mylogin.cnf 登錄文件的未加密格式由選項組組成,類似于其他配置文件。.mylogin.cnf 中的每個選項組稱為“登錄路徑” ,僅允許一組有限的選項:主機、用戶和口令。可將登錄路徑視為一組值,可以指示服務器主機以及用于服務器驗證的憑證。

下面是一個示例:

[admin]

user = root

password = oracle

host = 127.0.0.1

shell>mysql --login-path=admin

9)       登錄路徑

創建登錄路徑:

mysql_config_editor --login-path=<login-path> --user=<user> --password --host=<hostname>

以純文本格式查看單個登錄路徑:

mysql_config_editor print --login-path=<login-path>

以純文本格式查看所有登錄路徑:

mysql_config_editor print --all

刪除登錄路徑:

mysql_config_editor remove --login-path=<login-path>

默認登錄路徑名稱為 client,被所有標準客戶機讀取

如果調用 mysql_config_editor 時不使用 --login-path 選項,則將使用[client] 登錄路徑。默認情況下,所有標準客戶機都使用此登錄路徑。

例如,以下命令將創建一個所有標準客戶機都使用的 [client] 登錄路徑:

shell> mysql_config_editor set --user=root --password

Enter password: oracle

調用標準客戶機時不提供命令行參數或配置文件將導致讀取 .mylogin.cnf 文件中的[client] 登錄路徑以及任何配置文件中的 [client] 選項組。例如,以下輸出顯示了調用 mysql 客戶機而不提供任何選項的結果(已執行前述命令):

shell> mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

...

1.2.       服務器系統變量

MySQL 服務器維護了許多服務器系統變量,這些變量可指示服務器的配置情況。在 shell下使用mysqld --verbose --help命令可以查看服務器根據其內部編譯的默認值使用的值,以及服務器讀取的任何配置文件,shell下使用mysqld --no-defaults --verbose --help命令可以查看服務器根據其內部編譯的默認值使用的值,忽略任何配置文件中的設置:

每個系統變量都有默認值,通過執行以下任一操作,可以在服務器啟動時設置變量:在命令行上使用選項或者使用配置文件;系統變量值可以在表達式中引用,也可以查看服務器使用的系統變量值。

         在 mysql 客戶機內部,使用此命令可以僅查看變量值,沒有其他啟動選項:

SHOW GLOBAL VARIABLES;

有關服務器系統變量的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html。

1)       動態系統變量

MySQL如何配置服務器

MySQL 維護了兩種包含系統變量的作用域。 GLOBAL 變量影響服務器的整體操作。SESSION 變量影響其對單個客戶機連接的操作。變量存在于任一作用域中,也可同時存在于兩個作用域中。

變量及其作用域的示例包括:

僅全局: key_buffer_size、 query_cache_size

全局和會話: sort_buffer_size、 max_join_size

僅會話: timestamp、 error_count

在更改變量值時,適用以下幾點:

設置會話變量不需要任何特殊權限,但客戶機只能更改自己的會話變量,不能更改其他任何客戶機的會話變量。

LOCAL 和 @@local 是 SESSION 和 @@session 的同義詞。

如果不指定 GLOBAL 或 SESSION,則當會話變量存在時, SET 將更改會話變量;會話變量不存在時,將產生錯誤。

2)       顯示動態系統變量

列出所有可用變量及其值:

SHOW [GLOBAL|SESSION] VARIABLES;

列出特定的變量值:

mysql> SHOW VARIABLES LIKE 'bulk%';

+-------------------------+---------+

| Variable_name | Value |

+-------------------------+---------+

| bulk_insert_buffer_size | 8388608 |

+-------------------------+---------+

設置一個新值,然后列出:

mysql> SET bulk_insert_buffer_size=4000000;

mysql> SHOW VARIABLES LIKE 'bulk%';

+-------------------------+---------+

| Variable_name | Value |

+-------------------------+---------+

| bulk_insert_buffer_size | 4000000 |

+-------------------------+---------+

SHOW VARIABLE 會話示例使用 'bulk%' 查找用于設置插入緩沖區大小幻燈片中的變量,但是,可以使用整個變量名稱來輸入任何變量,也可輸入部分變量名稱和百分比符號 (%) 通配符。

必須按如下方式設置特定的變量類型:

2  對具有字符串類型(如 CHAR 或 VARCHAR)的變量使用字符串值。

2  對具有數值類型(如 INT 或 DECIMAL)的變量使用數值。

2  將具有布爾(BOOL 或 BOOLEAN)類型的變量設置為 0、 1、 ON 或 OFF。(如果在命令行上或在配置文件中設置布爾變量,則使用數值。)

2  將枚舉類型的變量設置為可用的變量值之一,但也可將其設置為與所需枚舉值對應的數字。對于枚舉的服務器變量,第一個枚舉值對應于 0。這不同于 ENUM 列,后者的第一個枚舉值對應于 1。

有關動態服務器變量的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/dynamic-system-variables.html。

3)       結構化系統變量

MySQL 支持一種結構化變量類型,該變量類型可以指定控制key buffer操作的參數。key buffer結構化變量具有以下組件:

key_buffer_size

key_cache_block_size

key_cache_division_limit

key_cache_age_threshold

要引用結構化變量實例的組件,可使用復合名稱:

instance_name.component_name format

示例:

hot_cache.key_buffer_size

hot_cache.key_cache_block_size

cold_cache.key_cache_block_size

有關結構化系統變量的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/structured-system-variables.html。

4)       服務器狀態變量

MySQL如何配置服務器

使用 SHOW STATUS 語句評估系統運行狀況。

從兩種類別中選擇(類似于動態變量):

LOCAL 是 SESSION 的同義詞。如果沒有修飾符,則默認值為 SESSION。

mysql> SHOW GLOBAL STATUS;

+-----------------------+-------+

| Variable_name | Value |

+-----------------------+-------+

| Aborted_clients | 0 |

| Aborted_connects | 0 |

| Binlog_cache_disk_use | 0 |

| Bytes_received | 169 |

| Bytes_sent | 331 |

| Com_admin_commands | 0 |

...

有些狀態變量只有一個全局值。對于這些狀態變量, GLOBAL 和 SESSION 的值是相同的。

有關服務器狀態變量的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html。

1.3.       SQL 模式

通過設置 SQL 模式配置多種服務器操作特征,指定 MySQL 對接受輸入數據的寬容度,設置與其他數據庫系統的兼容性,控制查詢處理(啟用或禁用與 SQL 符合性相關的行為),覆蓋 SQL 的“空” 默認模式(空模式不啟用限制或符合性行為)。

SQL 模式由控制查詢處理某些方面的可選值組成。設置了相應的 SQL 模式后,客戶機就可以對以下項目進行某種程度的控制:

2  輸入數據: SQL 模式可用于指示服務器對接受輸入數據的寬容度。

2  標準 SQL 符合性: SQL 模式可用于啟用或禁用與標準 SQL 符合性相關的行為。

2  兼容性: SQL 模式可用于改進與其他數據庫系統的兼容性。

默認的 SQL 模式為 NO_ENGINE_SUBSTITUTION,默認的配置文件會添加 STRICT_TRANS_TABLES。

1)       設置 SQL 模式

2  通過命令行在啟動時設置:

shell> mysqld --sql-mode=<mode_value>

2  在配置文件內設置:

[mysqld]

sql-mode=IGNORE_SPACE

2  SET 語句

在 mysql 中,在啟動之后:

SET [SESSION|GLOBAL] sql_mode=<mode_value>

示例:

使用單個模式值設置 SQL 模式:

SET sql_mode = ANSI_QUOTES;

SET sql_mode = 'TRADITIONAL';

使用多個模式名稱設置 SQL 模式:

sql_mode = 'IGNORE_SPACE,ANSI_QUOTES,NO_ENGINE_SUBSTITUTION';

使用 SELECT 語句檢查當前的 sql_mode 設置:

SELECT @@sql_mode;

清除當前 SQL 模式:

SET sql_mode=''

單個客戶機可按自己的要求配置 SQL 模式,但也可使用 --sql-mode 選項設置服務器啟動時的默認 SQL 模式。如果服務器的運行模式對接受無效數據或創建 MySQL 用戶帳戶比較慎重,則可能需要執行此操作。

如果沒有修飾符,則 SET 將更改會話 SQL 模式。調用 SET 語句時可以帶一個空字符串,也可以帶一個或多個模式名稱(用逗號分隔)。如果值為空或者包含多個模式名稱,則必須將值放在引號中。如果值包含一個模式名稱,則引號可有可無。 SQL 模式值不區分大小寫。

2)       常用 SQL 模式

STRICT_TRANS_TABLES、 STRICT_ALL_TABLES:沒有這些模式, MySQL 將接受缺少、超出范圍或格式不正確的值。啟用 STRICT_TRANS_TABLES 時將為事務表設置“嚴格模式” ;也可在默認的 my.cnf 文件中啟用。啟用STRICT_ALL_TABLES 時將為所有表設置嚴格模式。

TRADITIONAL啟用此 SQL 模式可對輸入數據值施加類似于其他數據庫服務器的限制。在此模式下,使用 GRANT 語句可創建要求指定口令的用戶。

IGNORE_SPACE:默認情況下,必須調用函數名稱與后接括號間沒有空格的函數。啟用此模式后,允許存在此類空格,并使函數名稱成為保留字。

ERROR_FOR_DIVISION_BY_ZERO:默認情況下,除數為零時將產生結果 NULL。在啟用此模式的情況下插入數據時,除數為零將導致出現警告,在嚴格模式下將出現錯誤。

ANSI:使用此組合模式將使 MySQL 服務器變得更加“類似于 ANSI”。即,此模式支持的行為更像標準 SQL,如 ANSI_QUOTES 和 PIPES_AS_CONCAT。

NO_ENGINE_SUBSTITUTION:如果在創建或更改表時指定了不可用的存儲引擎,除非啟用了此模式,否則 MySQL 將替換默認存儲引擎。這是默認的 SQL 模式。

1.4.       日志文件

MySQL 用不同的日志文件來記錄服務器活動,記錄有關服務器執行的 SQL 語句的信息:

2  錯誤日志: 與啟動、關閉和異常情況有關的診斷信息

2  常規查詢日志: 服務器從客戶機收到的所有語句

2  慢速查詢日志: 需要長時間執行的查詢

2  二進制日志: 修改數據的語句

2  審計日志: 企業版基于策略的審計     

這些日志可用于評估服務器的操作狀態、用于崩潰后的數據恢復、用于復制、用于幫助確定運行速度慢的查詢以及用于安全和法規遵從性。在默認情況下,這些日志都未啟用(Windows 中的錯誤日志除外)。必須了解的是,日志文件(特別是常規查詢日志)的大小可能會增長到相當大。

有關日志文件的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/server-logs.html 和

http://dev.mysql.com/doc/refman/5.6/en/mysql-enterprise-audit.html

1)       日志文件用法列表

MySQL如何配置服務器

服務器在數據目錄中創建所有日志文件;在未設置其他路徑名的情況下,服務器會將文件名設置為當前主機名。通過在啟動服務器時使用對應的選項(在命令行上,或者配置文件中(不帶前綴 --)),可以啟用這些日志文件。

錯誤日志: 設置 --log-error=<file_name> 以將錯誤記錄到指定文件中。mysqld_safe 腳本可創建錯誤日志,并在啟動服務器時將其輸出重定向到該錯誤日志。

常規查詢日志: 設置 --general_log_file=<file_name> 以記錄查詢。全局的 general_log 和 general_log_file 服務器變量可提供對常規查詢日志的運行時控制。將 general_log 設置為 0(或 OFF)禁用該日志,設置為 1(或ON)啟用該日志。

慢速查詢日志: 設置 --slow_query_log_file=<file_name> 以提供對慢速查詢日志的運行時控制。將 slow_query_log 設置為 0 禁用該日志,設置為 1 啟用該日志。如果日志文件已打開,則將其關閉,然后打開新文件。

二進制日志: 設置 --log-bin 以啟用二進制日志記錄。服務器使用該選項值作為基名;在創建新日志文件時,在基名上添加一個升序數字后綴。這些日志文件以二進制格式(而不是文本格式)存儲。

審計日志: 審計日志是作為企業版插件提供的;加載該日志后,可用于將事件記錄到audit_log_file 選項指定的文件中。審計過程會不斷寫入審計日志,直到將該插件刪除,或者通過 audit_log_policy=NONE 選項設置關閉審計。在服務器啟動時使用 audit_log=FORCE_PLUS_PERMANENT 作為選項,可以防止刪除該插件。

2)       二進制日志記錄

二進制日志包含描述數據庫更改(如創建數據庫或更改表數據)的“事件” 。二進制日志還包含可能做出更改的語句的事件(例如,沒有匹配行的 DELETE)。該日志還包含有關每條更新語句所用時間的信息。二進制日志有兩個重要用途:復制和數據恢復。

MySQL 使用日志傳送復制解決方案。使用日志傳送系統時,可以將主系統上發生的所有數據更改存儲在二進制日志中,然后通過從系統檢索這些數據更改,并根據接收到的這些日志文件執行更改。可以實時下載日志文件并執行內容;即,只要生成日志文件事件,就將其發送到連接的從系統供執行。由于網絡傳播存在延遲,從系統可能需要幾秒到幾分鐘(最壞的情況)時間來接收更新。在理想的情況下,延遲會在一秒以內。

發生以下事件之一時,二進制日志會輪轉:

l  重新啟動 MySQL 服務器。

l  達到允許的最大大小 (max_binlog_size)。

l  發出了 FLUSH LOGS SQL 命令。

二進制日志獨立于存儲引擎。不管使用的存儲引擎是哪個(即 InnoDB 或 MyISAM),MySQL 復制都會工作。

3)       二進制日志記錄格式

MySQL如何配置服務器

基于語句的二進制日志記錄:

l  包含實際 SQL 語句

l  包括 DDL(CREATE、 DROP 等)和 DML(UPDATE、 DELETE 等)語句

l  相對較小的文件保存磁盤空間和網絡帶寬

l  并非所有復制的語句都會在遠程計算機上正確重放

l  要求主系統和從系統上復制的表和列完全相同(或者符合多個限制條件)

基于行的二進制日志記錄:

l  指示對單個表行的影響情況

l  正確重放所有語句,即使對于在使用基于語句的日志記錄時未正確復制的功能導致的更改也是如此

按如下方式設置格式:

SET [GLOBAL|SESSION] BINLOG_FORMAT=[row|statement|mixed|default];

注: 使用 mixed 選項可讓 MySQL 選取最適合單個事件的格式。 MySQL 通常會使用基于語句的二進制日志,但在需要時可恢復到基于行的復制。

4)       查詢二進制日志文件

使用 SHOW BINARY LOGS 語句可完成以下任務:

#列出當前的日志文件和文件大小

mysql> SHOW BINARY LOGS;

+---------------+-----------+

| Log_name | File_size |

+---------------+-----------+

| binlog.000015 | 724935 |

| binlog.000016 | 733481 |

+---------------+-----------+

使用 SHOW MASTER STATUS 語句可完成以下任務:

#顯示下一個事件的主狀態

mysql> SHOW MASTER STATUS;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| binlog.000016 | 733481 | world_innodb | manual,mysql |

+---------------+----------+--------------+------------------+

語句以描述數據庫修改的“事件” 形式存儲在二進制日志中。要確定事件,必須獲得二進制日志文件名稱和字節偏移(即位置)。例如,日志文件 binlog.000016、位置733481 可確定幻燈片中的最后一個事件。

SHOW MASTER STATUS 命令需要 SUPER 或 REPLICATION CLIENT 權限。

5)       查看二進制日志內容

二進制日志是無法使用普通文本查看器查看的,日志以緊湊二進制格式存儲。使用 mysqlbinlog 實用程序可以將二進制日志轉換成 SQL 文本格式,在標準輸出中查看數據:

shell> mysqlbinlog host-bin.000001 host-bin.000002

也可以將輸出重定向到 more:

shell> mysqlbinlog host-bin.000001 | more

通過命令行執行 mysqlbinlog 程序,將要查看的日志指定為參數。此程序有多個選項,提供諸如根據時間或文件偏移提取事件之類的功能。可以查看所有帶 --help 標志的選項。在 mysqlbinlog 輸出中,事件前面會有提供相關信息的頭注釋:

# at 141

#100309 9:28:36 server id 123 end_log_pos 245

Query thread_id=3350 exec_time=11 error_code=0

如果使用基于語句的日志記錄創建二進制日志,然后運行 mysqlbinlog --database=test 創建可讀文件,則服務器將過濾掉不與 test 數據庫關聯的語句:

INSERT INTO test.t1 (i) VALUES(100);

----------------------------------------

| USE test; |

| INSERT INTO test.t1 (i) VALUES(101); |

| INSERT INTO t1 (i) VALUES(102); |

| INSERT INTO db2.t2 (j) VALUES(201); |

----------------------------------------

USE db2;

INSERT INTO db2.t2 (j) VALUES(202);

因為沒有默認數據庫,因此不包括第一條 INSERT 語句。輸出的是跟在 USE test 后面的三條 INSERT 語句,而不是跟在 USE db2 后面的 INSERT 語句。

6)       刪除二進制日志

默認情況下,不會自動刪除舊的日志文件。

A.       根據存在時間刪除日志:

SET GLOBAL expire_logs_days = 7;

…或者…

PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;

B.       根據文件名刪除日志:

PURGE BINARY LOGS TO 'mysql-bin.000010';

C.       要在二進制日志輪轉過程中自動刪除存在時間多于指定天數的任何二進制日志,可使用expire_logs_days 設置。

也可以在配置文件中配置 expire_logs_days:

[mysqld]

expire_logs_days=7

7)       配置企業審計

企業審計通過使用 audit_log 服務器插件實現,該功能隨企業版本訂閱提供。企業審計啟用后,在日志文件中生成一個服務器活動審計記錄,內容取決于策略,可能包括:

2  在系統上發生的錯誤的記錄

2  客戶機連接和斷開連接的時間

2  客戶機在連接期間執行的操作

2  客戶機訪問的數據庫和表

A.       安裝 audit_log 插件

要安裝 audit_log 插件,請使用 INSTALL PLUGIN 語法,如以下示例中所示:

INSTALL PLUGIN audit_log SONAME 'audit_log.so';

或者,也可以在服務器啟動時設置 plugin-load 選項:

[mysqld]

plugin-load=audit_log.so

默認情況下,裝入該插件就會啟用日志記錄。將選項 audit-log 設置為 OFF 可禁用日志記錄。要防止在運行時刪除該插件,可設置以下選項:

audit-log=FORCE_PLUS_PERMANENT

         日志文件命名為 audit.log,默認情況下位于服務器數據目錄中。要更改該文件的名稱或位置,可在服務器啟動時設置 audit_log_file 系統變量。

B.       日志記錄策略

基于策略的日志記錄通過 audit_log_policy 選項設置,提供的日志記錄選項有 ALL、 NONE、 LOGINS 或 QUERIES,默認為 ALL;

要平衡遵從性和性能,可使用 audit_log_strategy 選項在 SYNCHRONOUS、ASYNCHRONOUS、 SEMISYNCHRONOUS 和 PERFORMANCE 之間進行選擇。如果將 audit_log_rotate_on_size 設置為某個大于 0 的數字,則當日志文件大小超出了該數量的 4 KB 數據塊大小時,將輪轉日志文件。

有關配置企業審計的更多信息,請參閱《MySQL 參考手冊》:

http://dev.mysql.com/doc/refman/5.6/en/audit-log-plugin-options-variables.html

C.       審計日志文件

審計日志文件以 XML 形式寫入,采用 UTF-8 編碼。根元素為 <AUDIT>。根元素的結束標記 </AUDIT> 在該插件終止時寫入。在審計日志插件處于活動狀態期間,文件中沒有該標記。每個審計條目就是一個 <AUDIT_RECORD /> 元素:

<AUDIT_RECORD TIMESTAMP="2012-10-12T09:35:15"

NAME="Connect" CONNECTION_ID="4" STATUS="0"

USER="root" PRIV_USER="root" OS_LOGIN="" PROXY_USER=""

HOST="localhost" IP="127.0.0.1" DB=""/>

<AUDIT_RECORD TIMESTAMP="2012-10-12T09:38:33"

NAME="Query" CONNECTION_ID="4" STATUS="0"

SQLTEXT="INSERT INTO tbl VALUES(1, 2)"/>

每個審計記錄的 TIMESTAMP 采用 UTC 格式。

NAME 屬性代表事件類型。例如, “Connect” 表示登錄事件, “Quit” 表示客戶機斷開連接, “Shutdown” 表示服務器關閉。 “Audit” 和“NoAudit” 表示審計開始和停止的點。

STATUS 屬性提供命令狀態。這與 MySQL 命令 SHOW ERRORS 顯示的 Code 值相同。有些屬性僅在特定的事件類型中出現。例如, “Connect” 事件包括諸如 HOST、 DB、 IP和 USER 之類的屬性, “Query” 事件包括 SQLTEXT 屬性。

以上是“MySQL如何配置服務器”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丰县| 西贡区| 博兴县| 彭州市| 襄垣县| 高碑店市| 敦煌市| 富宁县| 温州市| 高陵县| 驻马店市| 滦南县| 长沙市| 讷河市| 牟定县| 阿坝| 香河县| 如东县| 九龙坡区| 罗城| 福海县| 宜良县| 连南| 兴宁市| 普洱| 万州区| 东辽县| 密山市| 巴东县| 朝阳市| 寻甸| 博白县| 文登市| 东丰县| 定结县| 龙州县| 黎城县| 乐山市| 伊宁市| 嘉鱼县| 黄骅市|