第2章 MySQL的调控按钮-启动选项和系统变量

news/2024/10/18 18:18:06/

每个设置项都有各自的默认值,比方说服务器允许同时连入的客户端的默认数量是 151 ,表的默认存储引擎是 InnoDB ,我们可以在程序启动的时候去修改这些默认值,对于这种在程序启动时指定的设置项也称之为启动选项(startup options),这些选项控制着程序启动后的行为。在 MySQL 安装目录下的 bin 目录中的各种可执行文件,不论是服务器相关的程序(比如 mysqld 、 mysqld_safe )还是客户端相关的程序(比如 mysql 、mysqladmin ),在启动的时候基本都可以指定启动参数。这些启动参数可以放在命令行中指定,也可以把它们放在配置文件中指定。

2.1 在命令行上使用选项

如果我们在启动客户端程序时在 -h 参数后边紧跟服务器的IP地址,这就意味着客户端和服务器之间需要通过TCP/IP 网络进行通信。因为我的客户端程序和服务器程序都装在一台计算机上,所以在使用客户端程序连接服务器程序时指定的主机名是 127.0.0.1 的情况下,客户端进程和服务器进程之间会使用 TCP/IP 网络进行通信。如果我们在启动服务器程序的时候就禁止各客户端使用 TCP/IP 网络进行通信,可以在启动服务器程序的命令行里添加 skip-networking 启动选项,就像这样:

mysqld --skip-networking

在按照上述命令启动服务器程序后,如果我们再使用 mysql 来启动客户端程序时,再把服务器主机名指定为127.0.0.1 (IP地址的形式)的话会显示连接失败:

mysql -h127.0.0.1 -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)

这就意味着我们指定的启动选项 skip-networking 生效了。

2.1.1 选项的长形式和短形式

长形式

短形式

含义

--host

-h

主机名

--user

-u

用户名

--password

-p

密码

--port

-P

端口

--version

-V

版本信息

短形式的选项名只有一个字母,与使用长形式选项时需要在选项名前加两个短划线 -- 不同的是,使用短形式选项时在选项名前只加一个短划线 - 前缀。

2.2 配置文件中使用选项

在命令行中设置启动选项只对当次启动生效,也就是说如果下一次重启程序的时候我们还想保留这些启动选项的话,还得重复把这些选项写到启动命令行中。于是就有了配置文件这个概念,我们把需要设置的启动选项都写在这个配置文件中,每次启动服务器的时候都从这个文件里加载相应的启动选项。由于这个配置文件可以长久的保存在计算机的硬盘里,所以只需我们配置一次,以后就都不用显式的把启动选项都写在启动命令行中了,所以我们推荐使用配置文件的方式来设置启动选项。

2.2.1 配置文件的路径

MySQL 程序在启动时会寻找多个路径下的配置文件,这些路径有的是固定的,有的是可以在命令行指定的。根据操作系统的不同,配置文件的路径也有所不同。

2.2.1.1 Windows操作系统的配置文件

在 Windows 操作系统中, MySQL 会按照下列路径来寻找配置文件:

路径名

备注

%WINDIR%\my.ini , %WINDIR%\my.cnf

C:\my.ini , C:\my.cnf

BASEDIR\my.ini , BASEDIR\my.cnf

defaults-extra-file

命令行指定的额外配置文件路径

%APPDATA%\MySQL\.mylogin.cnf

登录路径选项(仅限客户端)

2.2.1.2 类Unix操作系统中的配置文件

在类 UNIX 操作系统中, MySQL 会按照下列路径来寻找配置文件:

路径名

备注

/etc/my.cnf

/etc/mysql/my.cnf

SYSCONFDIR/my.cnf

$MYSQL_HOME/my.cnf

特定于服务器的选项(仅限服务器)

defaults-extra-file

命令行指定的额外配置文件路径

~/.my.cnf

用户特定选项

~/.mylogin.cnf

用户特定的登录路径选项(仅限客户端)

在阅读这些 UNIX 操作系统下配置文件路径的时候需要注意一些事情:

SYSCONFDIR 表示在使用 CMake 构建 MySQL 时使用 SYSCONFDIR 选项指定的目录。默认情况下,这是位于编译安装目录下的 etc 目录。

MYSQL_HOME 是一个环境变量,该变量的值是我们自己设置的,我们想设置就设置,不想设置就不设置。该变量的值代表一个路径,我们可以在该路径下创建一个 my.cnf 配置文件,那么这个配置文件中只能放置关于启动服务器程序相关的选项(言外之意就是其他的配置文件既能存放服务器相关的选项也能存放客户端相关的选项。

2.2.3 特定MySQL版本的专用选项组

我们可以在选项组的名称后加上特定的 MySQL 版本号,比如对于 [mysqld] 选项组来说,我们可以定义一个[mysqld-5.7] 的选项组,它的含义和 [mysqld] 一样,只不过只有版本号为 5.7 的 mysqld 程序才能使用这个选项组中的选项。

2.2.4 配置文件的优先级

如果我们在多个配置文件中设置了相同的启动选项,那以最后一个配置文件中的为准。比方说 /etc/my.cnf 文件的内容是这样的:

[server]
default-storage-engine=InnoDB

而 ~/.my.cnf 文件中的内容是这样的:

[server]
default-storage-engine=MyISAM

又因为 ~/.my.cnf 比 /etc/my.cnf 顺序靠后,所以如果两个配置文件中出现相同的启动选项,以 ~/.my.cnf 中的为准,所以 MySQL 服务器程序启动之后, default-storage-engine 的值就是 MyISAM 。

2.2.5 defaults-file的使用

如果我们不想让 MySQL 到默认的路径下搜索配置文件(就是上表中列出的那些),可以在命令行指定 defaultsfile 选项,比如这样(以 UNIX 系统为例):

mysqld --defaults-file=/tmp/myconfig.txt

这样,在程序启动的时候将只在 /tmp/myconfig.txt 路径下搜索配置文件。如果文件不存在或无法访问,则会发生错误。


http://www.ppmy.cn/news/1063006.html

相关文章

大语言模型之六- LLM之企业私有化部署

数据安全是每个公司不得不慎重对待的,为了提高生产力,降本增效又不得不接受新技术带来的工具,私有化部署对于公司还是非常有吸引力的。大语言模型这一工具结合公司的数据可以大大提高公司生产率。 私有化LLM需要处理的问题 企业内私有化LLM…

MathType7MAC中文版数学公式编辑器下载安装教程

如今许多之前需要手写的内容都可以在计算机中完成了。以前我们可以通过word输入一些简单的数学公式,但现在通过数学公式编辑器便可以完成几乎所有数学公式的写作。许多简单的数学公式,我们可以使用输入法一个个找到特殊符号并输入,但是对于高…

Spring Framework核心模块

core Spring Core是Spring框架的基础API核心模块,提供了基本的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)功能。 core核心功能举例 资源管理-系统资源加载 Fi…

网络工程----小型网络配置1

此次作业设计: 硬件:二层交换机、三层交换机、路由、服务器、pc 配置知识:dhcp, dns配置,vlan划分,不同vlan间通信,静态路由,Nat动态地址, nat server映射,acl 配置命…

docker安装报错: Requires: container-selinux >= 2:2.74

一. docker 安装报错 [rootmaster01 opt]# sudo yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.ioLoaded plugins: fastestmirror Repository epel-testing is listed more than once in the configuration Repository epel-testing-debuginfo is listed…

【算法系列总结之分组循环篇】

【算法系列总结之分组循环篇】 分组循环1446.连续字符1869.哪种连续子字符串更长1957.删除字符使字符串变好2038.如果相邻两个颜色均相同则删除当前颜色1759.统计同质子字符串的数目2110.股票平滑下跌阶段的数目1578.使绳子变成彩色的最短时间1839.所有元音按顺序排布的最长子字…

深度学习5:长短期记忆网络 – Long short-term memory | LSTM

目录 什么是 LSTM? LSTM的核心思路 什么是 LSTM? 长短期记忆网络——通常被称为 LSTM,是一种特殊的RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中…

【FreeRTOS】【应用篇】任务管理相关函数

文章目录 前言一、函数解析1. 任务挂起 vTaskSuspend()① 使用场景② 设计思路③ 代码 2. 任务恢复 vTaskResume()① 作用② 设计思路③ 代码 3. 挂起任务调度器 vTaskSuspendAll()① 作用② 代码 4. 恢复任务调度器 xTaskResumeAll()① 设计思路② 代码 5. 任务删除函数 vTask…