前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置MySQL选项

配置MySQL选项

作者头像
MySQLSE
发布2023-08-31 14:43:30
1440
发布2023-08-31 14:43:30
举报
文章被收录于专栏:MySQL解决方案工程师

当用户启动MySQL服务器或者客户端时,可以通过命令行或者配置文件对服务器或者客户端的选项进行配置。如果用户没有为选项设定值,MySQL将为每个选项设置默认值。当服务器运行时,用户可以通过动态变量对选项值进行更改,并对其进行持久化配置,服务器重启后,该选项值能够持久有效。配置选项的优先级从低到高依次为,选项的默认值-配置文件的选项值-命令行的选项值-持久化的选项值-动态变量设置的选项值。如果用户在配置文件中为某一选项指定了值,但在启动mysqld时,通过命令行为该选项指定了不同的值,MySQL将优先使用通过命令行指定的选项值。

通过对服务器的选项进行配置,用户可以控制日志文件的输出、指定数据或日志的保存路径、更改最大连接数、缓存和缓冲的大小,及启用或禁用存储引擎。

显示选项值

用户可以通过以下命令查看已配置的选项值:

代码语言:javascript
复制
mysql> SHOW GLOBAL VARIABLES;
shell> mysqladmin variables
shell> mysqld --verbose --help

选项值的命名规则

选项的名称在配置文件、命令行和使用变量时规则不同。在配置文件中,名称使用小写的字母,两个词之间使用“-”或“_”进行连接,例如,“log-error”,“default_password_lifetime”。当在命令行中使用时,则使用前缀“--”,例如,“--log-error”。当在运行中的服务器使用变量时,在两个词之间全部使用“_”进行连接,例如,“log_error”。

使用命令行选项的例子:

代码语言:javascript
复制
mysqld --no-defaults --basedir=/local/mysql --datadir=/local/mysql/data --user=mysql --socket=/local/mysql/socket --port=3310

配置文件

使用配置文件对服务器和客户端的选项可以为用户带来极大的便利性,并减少错误的发生。用户可以利用配置文件在同一主机上启动多个MySQL服务器。通常情况下,MySQL的配置文件名称为my.cnf(Linux)位于/etc/my.cnf,my.ini(Windows)位于%PROGRAMDATA%\MySQL\MySQL Server 8.0路径下,MySQL可以读取多个配置文件,其中的选项值以最后读取的文件中的选项值为准。

运行MySQL程序时使用--help选项可以查看配置文件保存的位置。注意,使用mysqld时需要加上--verbose选项,例如:

代码语言:javascript
复制
shell> mysqld --help --verbose
shell> mysql -help

在配置文件中,选项按照组进行分类,组的名称使用“[]”包围,例如[mysqld],[mysqldump],通常情况下,组名称使用MySQL的各个程序进行分类。除此之外[client]适用于全部的客户端程序,[server]适用于全部的服务器程序和脚本。例如:

代码语言:javascript
复制
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

# pipe=

# socket=MYSQL

port=3306

[mysql]
no-beep

# default-character-set=

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
# server_type=3
[mysqld]

# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
# enable-named-pipe
# shared-memory

# shared-memory-base-name=MYSQL

# The Pipe the MySQL Server will use
# socket=MYSQL

# The TCP/IP Port the MySQL Server will listen on
port=3306

# Path to installation directory. All paths are usually resolved relative to this.
# basedir="C:/Program Files/MySQL/MySQL Server 8.0/"

注意,当用户创建或修改配置文件时,需要注意文件的写入权限,MySQL程序仅需要读取权限,不会对配置文件进行任何修改。

从命令行加载配置文件

通过命令行加载配置文件时,需要将其指定为第一个选项,可以通过如下选项进行加载,--no-defaults(不读取任何配置文件)、--defaults-file=文件名、--defaults-extra-file=文件名。例如:

代码语言:javascript
复制
mysql --defaults-file=/etc/my-opt.cnf

此外,在配置文件中加入定向指令,可以使程序读取额外的配置文件,例如:

代码语言:javascript
复制
!include 文件名
或
!includedir 路径名

以上内容是关于MySQL使用配置选项的介绍,感谢关注“MySQL解决方案工程师”!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档