我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL如何配置服务器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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%' 查找用于设置插入缓冲区大小幻灯片中的变量,但是,可以使用整个变量名称来输入任何变量,也可输入部分变量名称和百分比符号 (%) 通配符。

必须按如下方式设置特定的变量类型:

²  对具有字符串类型(如 CHAR 或 VARCHAR)的变量使用字符串值。

²  对具有数值类型(如 INT 或 DECIMAL)的变量使用数值。

²  将具有布尔(BOOL 或 BOOLEAN)类型的变量设置为 0、 1、 ON 或 OFF。(如果在命令行上或在配置文件中设置布尔变量,则使用数值。)

²  将枚举类型的变量设置为可用的变量值之一,但也可将其设置为与所需枚举值对应的数字。对于枚举的服务器变量,第一个枚举值对应于 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 模式后,客户机就可以对以下项目进行某种程度的控制:

²  输入数据: SQL 模式可用于指示服务器对接受输入数据的宽容度。

²  标准 SQL 符合性: SQL 模式可用于启用或禁用与标准 SQL 符合性相关的行为。

²  兼容性: SQL 模式可用于改进与其他数据库系统的兼容性。

默认的 SQL 模式为 NO_ENGINE_SUBSTITUTION,默认的配置文件会添加 STRICT_TRANS_TABLES。

1)       设置 SQL 模式

²  通过命令行在启动时设置:

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

²  在配置文件内设置:

[mysqld]

sql-mode=IGNORE_SPACE

²  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 语句的信息:

²  错误日志: 与启动、关闭和异常情况有关的诊断信息

²  常规查询日志: 服务器从客户机收到的所有语句

²  慢速查询日志: 需要长时间执行的查询

²  二进制日志: 修改数据的语句

²  审计日志: 企业版基于策略的审计     

这些日志可用于评估服务器的操作状态、用于崩溃后的数据恢复、用于复制、用于帮助确定运行速度慢的查询以及用于安全和法规遵从性。在默认情况下,这些日志都未启用(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 服务器插件实现,该功能随企业版本订阅提供。企业审计启用后,在日志文件中生成一个服务器活动审计记录,内容取决于策略,可能包括:

²  在系统上发生的错误的记录

²  客户机连接和断开连接的时间

²  客户机在连接期间执行的操作

²  客户机访问的数据库和表

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如何配置服务器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL如何配置服务器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vps服务器如何配置

配置VPS服务器需要按照以下步骤进行:1. 选择适合的VPS服务器:根据自己的需求选择合适的VPS服务器,包括服务器规格、操作系统等。2. 连接服务器:通过SSH客户端(如PuTTY)使用服务器的IP地址和登录凭证连接到服务器。3. 更新系
2023-09-16

云服务器如何配置

云服务器的配置可以根据你的实际情况而定,以下是一些常见的配置步骤:1.选择云服务器供应商:首先,选择一家云服务器的供应商,了解其性能、稳定性、可靠性等方面的信息。这可以通过咨询客服或者查看他们的产品介绍来获得。2.了解基础设施:在了解基础设施之后,你需要选择最适合你的需求的云服务器供应商。例如,你需要考虑你的数据存储和备份的需求,你需要考虑云服务器的性能,你需要考虑你的安全需求等。3.安装软件:在
2023-10-26

eclipse如何配置服务器

要配置eclipse服务器,您可以按照以下步骤进行操作:打开eclipse并创建一个新的Dynamic Web Project或者选择现有的项目。点击项目名称右键,选择“Properties”。在弹出的窗口中,选择“Project Fa
eclipse如何配置服务器
2024-04-09

如何配置云服务器

配置云服务器需要考虑以下几个方面:选择合适的云服务器供应商:选择一个有经验且信誉良好的云服务器供应商,确保它可以为你提供优秀的支持和服务,并能够提供可靠的技术解决方案。选择合适的服务器配置:在购买云服务器之前,需要确定您的需求和预算,包括硬件、软件和服务等方面的配置。您可能需要选择服务器的架构、软件、存储等方面的配置。选择合适的服务:根据您的需求选择合适的云服务器服务,例如托管式服务、按
2023-10-26

云服务器配置mysql

要配置MySQL数据库并添加云服务器,请按照以下步骤操作:下载并安装MySQL和相应的服务器软件(如MYSELinux或者Sybase等)。安装MySQL客户端软件并登录到MySQL服务器。在Windows操作系统,打开MicrosoftWord并创建一个新的文档并在其上运行Word编辑器。在Mac操作系统,打开MacOSX并创建一个新的文档并在上述文档上运行MicrosoftExcel并
2023-10-26

如何阿里云配置web服务器配置

简介在云计算时代,越来越多的企业和个人选择将网站托管在云平台上,其中阿里云作为国内领先的云计算服务提供商,备受青睐。本文将介绍如何在阿里云上配置Web服务器,帮助您快速搭建稳定可靠的网站。配置步骤步骤一:购买云服务器首先,在阿里云官网上选择合适的云服务器实例,并完成购买。在购买过程中,您可以根据自己的需求选择不同的配置
如何阿里云配置web服务器配置
2024-01-20

云服务器如何配置ftp服务器

要配置云服务器上的FTP服务器,您可以按照以下步骤进行操作:步骤 1:安装FTP服务器软件首先,您需要在云服务器上安装FTP服务器软件。常用的FTP服务器软件有ProFTPD、vsftpd等。您可以使用以下命令安装vsftpd:```sud
2023-08-19

云服务器如何配置ftp服务器

配置云服务器FTP服务器通过本文的逐步指南,您可以在云服务器上轻松配置FTP服务器,安全地存储、共享和管理文件。安装FTP服务器软件、配置设置、启用防火墙端口,并启动和启用服务器。遵循最佳实践,例如使用强密码、限制匿名访问和定期更新服务器。使用FTP客户端连接到服务器以验证其正确配置。
云服务器如何配置ftp服务器
2024-04-13

云服务器如何配置web服务器

云服务器可以配置为Web服务器的虚拟版本,用于支持Web应用程序。以下是一些云服务器配置Web服务器需要考虑的步骤:选择云服务提供商:根据云服务提供商的网站或者联系他们的客户代表。选择虚拟主机:选择可以为Web服务器虚拟版本提供支持的云服务器提供商。虚拟主机通常具有更好的可靠性和可扩展性。配置虚拟主机的IP地址:使用云服务器提供商提供的IP地址来配置虚拟主机。配置虚拟目录:使用云服务器
2023-10-26

如何将MySQL配置到阿里云服务器上

本文将详细介绍如何将MySQL配置到阿里云服务器上,包括如何设置数据库、用户权限、数据库服务器的访问等。在阿里云上配置MySQL是一个相对简单的过程,只需要几步就可以完成。但是,如果你是第一次使用阿里云或MySQL,可能会有一些疑惑。在本文中,我们将详细解释这些步骤,以帮助你轻松地将MySQL配置到阿里云服务器上
如何将MySQL配置到阿里云服务器上
2023-11-01

如何配置Linux Samba服务器

本篇内容介绍了“如何配置Linux Samba服务器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!系统环境为Ubuntu 7.04...  
2023-06-10

如何配置linux云服务器

配置Linux云服务器本文提供了详细的分步指南,帮助您设置和配置Linux云服务器,包括系统更新、安全配置、用户管理、软件安装、网络配置、安全增强、服务启动和监控以及测试验证。建议遵循这些步骤,以建立一个安全、稳定和高效的云服务器环境。
如何配置linux云服务器
2024-04-11

如何选云服务器配置

在选择云服务器配置时,我们应该考虑以下几个方面:存储容量:我们需要确保我们的云服务器能够存储足够的数据以支持我们的应用程序,并且需要考虑云服务器的存储容量,以确保我们可以随时扩展存储空间。处理器:我们需要考虑云服务器的处理器,以确保我们的应用程序能够高效运行。我们需要选择处理速度快、功耗低的处理器,以避免过多的功耗浪费
如何选云服务器配置
2023-10-28

编程热搜

目录