除了通过命令行来进行MySQL参数项配置之外,你还可以将设置写入一个配置文件中来实现设置。标准的MySQL客户端程序会在启动时查找此类配置文件并使用文件中的相应设置项。通过写配置文件可以大大减少你运维工作时间,因为你不必在每次调用程序的时候通过命令来重新定义这些参数项。

默认情况下,MySQL server会在运行时使用其预编译的值作为其配置项值。如果这些默认值在实际环境中是不适合的,你可以在server运行时给予不同的运行时参数值:

有几个配置项定义了MySQL重要目录和文件的位置信息。如,Windows下,默认预编译的安装目录(base directory)为C:\mysql。如果你系统将MySQL安装在其他地方,你就必须通过使用 --basedir参数设置告知服务正确的目录位置,否则服务无法启动。同样的,如果你并非使用安装目录下的data子目录作为你的数据存放目录的话,你就必须使用 –datadir项设置来告诉服务正确的位置。

有些配置项对MySQL server写哪些日志进行了控制。

有些配置项被用于覆盖调整server中与性能相关的内部变量值,如控制最大同时连接数的配置项,控制buffer和cache大小的配置项等等。

一些存储引擎在预编译时的设置为启用或禁用状态。如,服务程序已经编译启用了InnoDB支持(默认为启用),假如你并不使用InnoDB表的话,你可以设置 --skip-innodb项来节省内存(注意,由于现在InnoDB已成为标准配置,因此此参数在MySQL 5.7版本及其以后版本中被废用,这里仅作为例子进行说明)。你也可以设置默认存储引擎进行设置修改。

有些配置项也可对InnoDB表空间进行进行设置。在未显式配置的情况下,如 --innodb_autoextend_increment, -- innodb_page_size等,这些值也可以根据你的情况进行调整。

你可以通过定义运行时配置项在服务启动时改变其表现。通常,这种设置可以通过命令行和配置文件来达到你的目的。(例外的是,如果你是以Window Service服务运行MySQL服务的话,你可能不能通过命令行来进行配置设置,你必须在启动时使用 --defaults-file 参数项,将配置设置于配置文件中。请依据对应版本而定。)

为了了解哪些配置项是server支持的,我们可以手工调用以下命令:

# mysqld --verbose --help

在帮助中所看到的那些配置项都可以使用mysqld命令时同时进行设置使用。当然,更常见的是将它们写入配置文件中,这都多方面原因:

通过将配置项写入文件中,你可以不必每次在启动MySQL服务时将配置参数定义在命令中。这不仅方便,也可以避免太多复杂配置项造成的输入错误。

如果你是通过server启动脚本来调用服务的话,你就不能通过在命令中加入配置项来进行启动。因为此脚本仅有参数值start和stop,这里你不需使用配置文件来进行启动设置。

如果你在配置文件中列出有所有你所需的服务配置,你可以从文件中快速方便得了解你所进行的设置。

标准MySQL服务会在几个位置查找配置文件。它会使用那些在相应存放位置的配置文件,但是如果它找不到的话,服务也照样正常启动,不会报错。在Windows和Unix上,对应的标准配置文件有所不同。

在Windows上,程序会在目录(例如,C:\Winodws或C:\WinNT目录)中按以下顺序查找配置文件:my.ini,然后是my.cnf。

按目录查找的顺序如下:最上面的文件先读。

注意:如果你使用配置精灵进行的安装(即将MySQL server注册为一个Windows服务),那么服务就不会按照标准配置文件目录顺序进行查找,它仅会找MySQL安装目录下的my.ini文件。当然如果你在注册服务时使用 --defaults-file指定过配置文件,那么服务只会找你指定位置的那份配置文件。因此,如果你需要进行配置修改,请将设置放在服务会读的那个配置文件中。

在Unix上,所查找的配置文件则包括两个通用配置文件,/etc/my.cnf和$MYSQL_HOME/my.cnf。第二个文件仅在MYSQL_HOME环境变量已设置好的情况下才会被使用。通常你可以设置它作为MySQL安装目录。(如果在启动服务时此参数未设置,则mysql_safe脚本在执行时会尝试设置此MYSQL_HOME环境变量。)

Unix配置文件的查找顺序中还包括了~/.my.cnf,配置文件可被放置在当前启动MySQL的用户HOME目录下。不过,由于此文件是一个特定于用户的文件,因此不太适合存放作为服务配置参数。(正常在你以root用户且使用 --user=mysql调用mysql服务时,服务会读取的特定用户配置文件取决于你调用服务的那个登陆用户,这可能会导致不一致的配置信息被使用。)

按目录查找的顺序如下:最上面的文件先读。

在配置文件中定义服务启动配置项时,使用[mysqld]组。如果文件不存在,那么你可以使用编辑器新建一个平文件。建立和修改文件需要对应的写入权限。MySQL服务本身仅需要读取权限即可;它会读取其中信息,但并不会新建或改动文件。

以下例子中,我们例举了一些使用配置文件进行设置的方法:

如果在的MySQL安装在Windows上,服务假设默认安装目录为C:\mysql且数据子目录名为data。然而你希望将MySQL安装在其它地方,如: E:\mysql,你就必须使用 --basedir参数项告知服务对应路径。配置文件中的配置项前不用写双横杠【--】,你如下在配置文件中设置安装目录:

[mysqld]

basedir=E:/mysql

如果你将E:\mysql下的data子目录作为数据目录,那basedir值已近足够了。不过如果你希望使用不同的数据目录路径,你就必须设置 --datadir项,如:

[mysqld]

basedir=E:/mysql

datadir=D:/mysql-data

请注意,在这种情况下,你也需要将原数据目录的拷贝到新对应位置D:\mysql-data上。如果不这样的话,当启动服务时,由于找不到配置文件对应的数据目录,会导致服务启动失败。

对于配置参数中设置的Windows路径名,你可以使用斜杠【/】或者【\\】。例如,定义basedir值为E:\mysql,你可以以以下两种格式进行设置:

basedir=E:/mysql

basedir=E:\mysql

如果路径名包含空格,你可以用双引号括起来,如:

basedir=” C:/Program Files/MySQL/MySQL Server 5.6”

在Windows上,默认共享内存(shared-memory)连接方式是未启用的。为了使用此连接方式,使用以下配置项:

[mysqld]

shared-memory

类似,mysqld-nt和mysql-max-nt服务程序都在Windows平台上支持命名管道(named-pipe)连接方式,但它们都并未启用。为了启用这种连接方式,可使用以下配置项:

[mysqld]

enable-named-pipe

为了启用日志,可以使用配置项启用你所希望的类型。以下配置项启用了通用查询日志,二进制日志以及长时间查询日志(以MySQL v5.7版本为例):

[mysqld]

general-log

log-bin

log-slow-queries

为了定义默认存储引擎为InnoDB,可以使用 --default-storage-engine项:

[mysqld]

default-storage-engine=InnoDB

配置文件中也可设置许多MySQL服务系统变量值。例如,为了将最大客户端连接数从默认151提升至201,并增加MyISAM的键缓存(key cache)从8MB到128MB,你需要设置max_connections和key_buffer_size变量:

[mysqld]

max_connections = 201

key_buffer_size = 134217728

MySQL版本在v5.6.8之前包含有几个模板配置文件。在Windows中,文件名如my-small.ini和my-large.ini。这些被安装时同时建立在安装目录中。在Unix中,它们名为my-small.cnf和my-large.cnf。在my-default.cnf v5.6.8之后,这些文件被my-default.cnf文件代替。

你可以通过拷贝模板文件到标准配置文件路径上,将其文件名修改为指定所用配置文件名。不过在使用模板文件时,你需要确保能读懂文件中的意思,理解其中配置项设置的效果并作出相应修改。

3.5.1使用--safe-updates配置项

配置文件中的配置项按组进行组织,每组配置项前都有一个以中括号括起来的组名(如:[group-name])。通常情况下,组名为所使用配置项对应的程序名。例如, [mysql]和[mysqldump]组对应的配置项被用于mysql和mysqldump命令工具。而特别的组名如[client]则被用于所有客户端程序。一般[client]组被设置连接配置参数,因为不管你使用哪个客户端程序都连接到此相同server上。

在配置文件中进行设置时,请将使用于命令行时的参数前的双横杠去掉。如果配置项设置一个值,可与允许在等号【=】两边有空格,不过在用于命令行时,这是不允许的。以下为一个配置文件例子:

[client]

host = myhost.example.com

compress

[mysql]

safe-updates

[mysqld]

port=3011

注意:除非服务由root用户启动,否则端口号必须为1024或比之更大的值。

在上面这个例子中,[client]组定义了主机名,且设定C/S访问协议需使用压缩模式进行发送。组中的配置项应用于所有标准的客户端。而[mysql]组仅应用于客户端程序mysql。[mysql]组的设置要求了mysql命令应该使用 --safe-updates项。(mysql命令程序将会同时使用[client]和[mysql]组中的配置,因此总共有3个配置项被mysql使用。)

3.5.2配置文件位置

配置文件的位置取决于你的操作系统。标准配置文件如:

在Windows上,一般MySQL会按以下顺序查找配置文件: my.ini和cnf。而MSI安装精灵会将配置文件放置在服务注册设定时所指定的位置下)。

在Unix平台上,文件/etc/my.cnf将作为全局配置文件被所有用户使用。你也可以在你的HOME目录中建立用户自己定义的cnf文件。如果两个都存在,全局文件会被先读取。

当然,MySQL的命令行程序会在查找$HOME目录下的配置文件前,先在$MYSQL_HOME目录下查找配置文件(例如,../MySQL Server 5.6)。

MySQL(客户端)程序也可以对多个配置文件进行访问。程序会查找每个标准配置文件并在文件存在时进行读取。如果文件不存在也不会报错。

如果需要使用某个配置文件,你可以使用编辑器建立一个平文件进行编辑。

为了建立或修改此文件,你必须有相应的写权限。客户端程序仅需读权限即可。

为了告知程序读取指定的配置文件,使用命令行启动时可使用以下参数项(在命令中必须是第一个参数项):

配置项

注释

--defaults-file=file_name

使用指定位置的配置文件

--defaults-extra-file=file_name

使用指定位置的额外配置文件

--no-defaults

使程序不使用配置文件

例如,使用mysql工具命令时使用C:\my-opts配置文件而不使用标准配置文件:

shell> mysql -–defaults-file=C:\my-opts

在配置文件中,你还可以使用 !include和 !includedir指令:

如果某行中出现 !include file_name,那就会从这句指令开始跳转到对应file_name进行读取,读完后再调回原先的配置文件继续之前的读取。

如果某行中出现 !includedir dir_name,那么类似的会从这句指令开始跳转到对应dir_name目录并查找尾缀为.cnf的文件(Windows平台上为.cnf和.ini)进行配置读取,在读完后回到之前跳出的配置文件完成余下的读取工作。

如果一个配置项被定义多次,不管是在同一个文件中还是在不同的多个配置文件中,配置项的值取最后设置的那个。

注意:在命令行中设置的配置项会最终覆盖配置文件读取的配置项的值。

mysql的配置文件名称是_【MySQL学生手册】MySQL的配置文件相关推荐

  1. concat 不是可以识别的 内置函数名称。_新特性解读 | MySQL 8.0 窗口函数详解

    背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能.不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF, ...

  2. mysql集群初始化配置_集群Cluster MySQL的安装配置和使用

    集群Cluster MySQL的安装配置和使用 发布时间:2020-05-28 14:20:03 来源:亿速云 阅读:233 作者:鸽子 MySQL Cluster MySQL集群 基本概念: &qu ...

  3. 实现MySQL高可用群集配置_配置高可用性的MySQL服务器负载均衡群集

    mysql -u root -p USE mysqlclustertest; SELECT * FROM testtable; quit; SELECT查询出的结果应该依然是: mysql> S ...

  4. mysql用天兔监测什么_天兔监控服务器和mysql,redis等监控

    1:软件用途来源-官网 为所有数据库管理者.互联网企业数据库监控而设计 无需部署Agent,轻松监控1000+数据库实例,完善灵活的告警配置,详细的性能分析指标 部署环境: Linux环境:CentO ...

  5. gcc编译器和mysql源码哪个难_源码编译mysql 5.5

    http://blog.csdn.net/aidenliu/article/details/6586610 源码编译mysql 5.5+ 安装过程全记录 分类: Mysql 2011-07-05 21 ...

  6. mysql安装check requirements出错_精心整理的mysql主从监控脚本,值得收藏

    概述 分享下最近整理的一个mysql主从监控脚本,仅供参考. 一.邮件配置 1.安装邮件服务 yum -y install sendmail mailx 2.修改配置 # vi /etc/mail.r ...

  7. mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程

    增量备份依赖于全量备份,因此首先要有全量备份,在全量备份的基础上,添加增量备份. 为了方便操作,我们先来做些准备工作.在客户端直接输入mysql.mysqldump.mysqladmin.mysqlb ...

  8. mysql 5.0 修改字符集_修改及查看mysql数据库的字符集

    Liunx下修改MySQL字符集: 1.查找MySQL的cnf文件的位置 find / -iname '*.cnf' -print /usr/share/mysql/my-innodb-heavy-4 ...

  9. mysql使用已有的数据库_使用SQL操作MySQL数据库

    用SHOW显示已有的数据库 句法:SHOW DATABASES [LIKE wild] 如果使用LIKE wild部分,wild字符串可以是一个使用SQL的"%"和"_& ...

  10. mysql 数据库备份到本地_如何备份远程 MySQL 数据到本地

    对于远程的 MySQL 数据库,如何定期将数据备份到本地呢?对于需要远程备份数据的童鞋来说我想这个是经常需要用到的. 1.首先远程数据库必须支撑远程连接,提供有供远程连接的IP或者域名. 假设远程数据 ...

最新文章

  1. bpython ipython_安装ipython后命令找不到ipython bpython -bash: *python: command not found
  2. BUUCTF(Pwn) rip
  3. .NET Core 3.0 webapi集成Swagger 5.0
  4. 云计算(cloud computing)十大问答
  5. 云原生人物志 | Pulsar翟佳:社区的信任最重要
  6. 面向对象并不是必要的
  7. 1.3编程基础之算术表达式与顺序执行 11 计算浮点数相除的余数
  8. 考拉RPC(koalas-rpc v1.0)源码
  9. less、Element-UI等安装配置
  10. DOM(三)——创建删除元素及优化(文档片段)
  11. Linux环境安装配置Swftools
  12. 高通说要抢占AI生态入口,投资商汤摩拜,明年推NPU芯片
  13. 如何用python完成基本统计信息计算_如何用python计算基本统计值?
  14. calendar类_不要再自己写 Java 工具类了,这些开源的不香吗?
  15. Multisim12使用记录
  16. 快速提示:如何在Word 2003中打开.DOCX文件
  17. Android 获取及修改屏幕亮度
  18. wifip2p重连 android,Android Wifi实现分析
  19. rMATs 分析可变剪切
  20. 从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》

热门文章

  1. 偏微分方程数值解法pdf_单摆-微分方程浅谈
  2. 邮箱服务申请数字证书
  3. Android自定义字体
  4. 领域(学科)知识图谱构建心得
  5. 修改VS2017密钥
  6. 基于javaweb的前台展示+后台管理结合的在线购书系统(java+springboot+ssm+mysql)
  7. JAVA计算机毕业设计在线购书商城系统Mybatis+源码+数据库+lw文档+系统+调试部署
  8. GTASA圣安地列斯 DirectX 2.0 ENB 下窗口化运行的解决办法
  9. 浏览器插件检测淘宝订单是否淘客下单
  10. linux手机刷机包制作工具_【 蘑菇ROM助手 】蘑菇ROM助手(刷机包编辑工具)新版下载 - U大师...