深圳制作网站专业,临安区建设局网站,旅游网站设计页面,广告公司取名大全集2.MySQL的调控按钮——启动选项和系统变量 1.启动选项和配置文件1.1 在命令行上使用选项1.2 配置文件中使用选项1.2.1 配置文件路径1.2.2 配置文件的内容1.2.3 特定 MySQL 版本的专用选项组1.2.4 配置文件的优先级1.2.5 同一个配置文件中多个组的优先级1.2.6 defaults-file 的使… 2.MySQL的调控按钮——启动选项和系统变量 1.启动选项和配置文件1.1 在命令行上使用选项1.2 配置文件中使用选项1.2.1 配置文件路径1.2.2 配置文件的内容1.2.3 特定 MySQL 版本的专用选项组1.2.4 配置文件的优先级1.2.5 同一个配置文件中多个组的优先级1.2.6 defaults-file 的使用 1.3 在命令行和配置文件中启动选项的区别 2.系统变量2.1 系统变量简介2.2 查看系统变量2.3 设置系统变量2.3.1 通过启动选项设置2.3.2 服务器程序运行过程中设置2.3.3 启动选项和系统变量的区别 3. 状态变量4.总结 1.启动选项和配置文件
MySQL 的服务器和客户端程序有很多设置项
对于 MySQL 服务器程序可以指定 允许同时连入的客户端数量默认151客户端和服务器的通信方式表的默认存储引擎默认InnoDB查询缓存大小等信息 对于 MySQL 客户端程序可以指定 需要连接的服务器程序所在主机的主机名或 IP 地址、用户名及密码等信息
上述设置项都可以在程序启动时修改默认值对于这种在程序启动时指定的设置项也称之为启动项startup option这些选项控制着程序MySQL 安装目录的 bin 目录下的各种可执行文件启动后的行为。这些启动选项可以在命令行中指定也可以在配置文件中指定。
1.1 在命令行上使用选项
在启动服务器程序时就禁止各客户端使用 TCP/IP 网络进行通信可以在启动服务器程序的命令行中添加 skip-networking 启动选项
mysqld --skip_networking注 在命令行中指定启动选项时需要在选项名前加上 – 前缀。如果选项名是由多个单词构成的它们之间可以由短划线 - 连接也可以使用下划线 _ 连接。也就是说 skip_networking 和 skip-networking 是等价的 按上述命令启动服务器程序后如果再使用 mysql 来启动客户端程序把服务器主机名指定为 127.0.0.1 IP地址的形式的话会显示连接失败
mysql -h127.0.0.1 -uroot -p
Enter password:ERROR 2003 (HY000): Cant connect to MySQL server on 127.0.0.1 (61)启动客户端程序时在 -h 参数后边紧跟服务器 IP 地址这就意味着客户端要求和服务器之间通过 TCP/IP 网络进行通信。
如果我们想改变表的默认存储引擎可以这样启动服务器程序
mysqld --default-storage-engineMyISAM查看表结构SHOW CREATE TABLE 表名\G总结一下在启动服务器程序的命令后边指定启动选项的通用风格如下
--启动选项1[值1] --启动选项2[值2] ... --启动选项n[值n]我们可以将各启动选项写到一行中每一个启动选项名称前面添加 --各个启动选项之间使用空白字符隔开。
大多数 MySQL 程序都提供了一个 --help 选项可以用来查看该程序支持得全部启动选项以及它们的默认值。查看 mysqld 支持的启动选项有些特别需要使用 mysqld --verbose --help。 1.2 配置文件中使用选项
命令行设置启动选项只对当次启动生效。如果我们将需要设置的启动选项都写在配置文件中每次启动服务器时都从这个文件中加载相应的启动选项。推荐
1.2.1 配置文件路径
MySQL 程序启动时会在多个路径下寻找配置文件这些路径有的固定有的可以在命令行中指定。操作系统不同寻找配置文件路径也不同。
Windows OS 的配置文件
在 Windows OS 中MySQL 会按照下表所示的路径依次寻找配置文件。 类 UNIX OS 中的配置文件
在 类 UNIX OS 中MySQL 会按照下表所示的路径依次寻找配置文件。 1.2.2 配置文件的内容
配置文件中的启动选项呗划分为若干个组每个组有一个组名用中括号 [] 括起来 每个组下边可以定义若干个启动选项以 [server] 组为例看一下填写启动选项的形式
[server]
option1 # 这是 option1该选项不需要选项值
option2 value2 # 这是 option2该选项需要选项值
...在配置文件中只能使用长形式的启动选项且配置文件中指定的启动选项不允许加 – 前缀每一行只指定一个选项等号 周围可以有空白字符在命令行中选项名、、选项值之间不允许有空白字符。在配置文件中我们可以使用 # 来添加注释。
配置文件中不同的选项组是给不同的程序使用的。如果选项组名称与程序名称相同则组中的选项将专门应用于该程序。例如[mysqld] 和 [mysql] 组分别应用于 mysqld 服务器程序和 mysql 客户端程序。
有两个选项组比较特别
[server] 组下面的启动选项将作用于所有服务器程序[client] 组下面的启动选项将作用于所有客户端程序
需要注意一点mysqld_safe 和 mysql.server 这两个程序在启动时都会读取 [mysqld] 选项组中的内容。 1.2.3 特定 MySQL 版本的专用选项组 1.2.4 配置文件的优先级
MySQL 在某些固定路径下搜索配置文件也可以通过命令行中指定 default-extra-file 启动选项来指定额外的配置文件路径。
MySQL 将按照表 2-2 或表 2-3 中给定的顺序具体取决于所用的操作系统依次读取各个配置文件。如果该文件不存在则忽略。 注意 如果在多个配置文件中设置了相同的启动选项则以最后一个配置文件中的为准。 1.2.5 同一个配置文件中多个组的优先级
如果在同一个配置文件中如 [mysqld]、[server] 组里出现了同样的启动选项将以最后一个出现的组中的启动选项为准。
1.2.6 defaults-file 的使用
如果不想让 MySQL 到默认路径下搜索配置文件可以在命令行指定 defaults-file 选项
mysqld --defaults-file/tmp/myconfig.txt这样一来程序启动时将只在 /tmp/myconfig.txt 路径下搜索配置文件。如果文件不存在或无法访问则会发生错误。 defaults-extra-file 和 defaults-file 的区别 使用 defaults-extra-file 可以指定额外的配置文件路径那些固定的配置文件路径也会被搜索。 1.3 在命令行和配置文件中启动选项的区别
在命令行中指定的绝大部分启动选项都可以放到配置文件中但是有一些选项是专门为命令行设计的比如 defaults-extra-file、defaults-file 这样的选项本身就是为了指定配置文件路径的如果再放在配置文件中使用就没啥意义了。 注意 如果同一个启动选项既出现在命令行中又出现在配置文件中则以命令行中的启动选项为准 2.系统变量
2.1 系统变量简介 2.2 查看系统变量
查看 MySQL 服务器程序支持的系统变量以及它们的当前值
SHOW VARIABLES (LIKE 匹配的模式);由于系统变量实在太多了如果直接使用 SHOW VARIABLES 查看的话就直接在屏幕上刷屏了所以通常会使用一个 LIKE 表达式来指定过滤条件 服务器程序默认存储引擎 InnoDB客户端允许的最大连接数是 151。 注意 MySQL 服务器实际上允许 max_connections 1 个客户端连接额外的 1 个事给超级用户准备的很显然这是超级用户的一个特权。 LIKE 表达式中可以使用通配符来进行模糊查询 这就查出了所有以 default 开头的系统变量的值。
2.3 设置系统变量
2.3.1 通过启动选项设置
大部分系统变量都可以通过在启动服务器时传送启动选项的方式来设置。 通过命令行添加启动选项 mysqld --default-storage-engineMyISAM --max-connections10通过配置文件添加启动选项 [server]
default-storage-engine MyISAM
max-connections 10注意 对于启动选项来说如果启动选项名由多个单词组成各个单词之间用短划线-或者下划线_连接起来都可以但是对于对应的系统变量来说各个单词之间必须使用下划线_连接。 2.3.2 服务器程序运行过程中设置
对于大部分系统变量来说它们的值可以在服务器程序运行过程中进行动态修改而无需停止并重启服务器。不过系统变量有作用范围之分 设置不同作用范围的系统变量 多个客户端程序可以同时连接到一个服务器程序对于同一个系统变量不同客户端可能会设置不同的值A 将 default_storage_engine 设置为 InnoDBB 将 default_storage_engine 设置为 MyISAM。这样各个客户端都私有一份系统变量这会产生2个问题 有一些系统变量并不是针对单个客户端的比如允许同时连接到服务器的客户端数量max connections、查询缓存的大小query cache size这些公有的系统变量让某个客户端私有显然不合适。一个新客户端连接到服务器时与它对应的系统变量的值该怎么设置。 为了解决这两个问题设计MySQL的大叔提出了系统变量的作用范围的概念。具体来说,作用范围分为下面两种。 GLOBAL全局范围影响服务器的整体操作。具有 GLOBAL作用范围的系统变量可以称为全面变量。SESSION会话范围影响某个客户端连接的操作。具有 SESSION作用范围的系统变量可以称为会话变量。 服务器在启动时会将每个全局变量初始化为其默认值可以通过命令行或配置文件中指定的选项更改这些默认值。 服务器还为每个连接的客户端维护一组会话变量客户端的会话变量在连接时使用相应全局变量的当前值进行初始化也有一些会话变量不依据相应的全局变量值进行初始化不过这里不展开唠叨了。 查看不同作用范围的系统变量 注意事项
2.3.3 启动选项和系统变量的区别
启动选项是在程序启动时由用户传递的一些参数而系统变量是影响服务器程序运行行为的变量。它们之间的关系如下
大部分的系统变量都可以当作启动选项传入有些系统变量是在程序运行过程中自动生成的不可以当作启动选项来设置比如 character_set_client有些启动选项也不是系统变量比如 defaults-file
3. 状态变量 4.总结
启动选项可以调整服务器启动后的一些行为。它们可以在命令行中指定也可以将它们写入配置文件中。
在命令行中指定启动选项时可以将各个启动选项写到一行中每一个启动选项名称前面添加 – 而且各个启动选项之间使用空白字符隔开。有一些启动选项不需要指定选项值有一些选项需要指定选项值。在命令行中指定有值的启动选项时需要注意选项名、、选项值之间不可以有空白字符。一些常用的启动选项具有短形式的选项名使用短形式选项时在选项名前只加一个短划线 - 前缀。
服务器程序在启动时将会在一些给定的路径下搜索配置文件不同操作系统的搜索路径是不同的。
配置文件中的启动选项被划分为若干个组每个组有一个组名用中括号 [ ] 扩起来。在配置文件中指定的启动选项不允许添加 – 前缀并且每行只指定一个选项而且等号周围可以有空白字符。我们可以使用 # 来添加注释。
系统变量是服务器程序中维护的一些变量这些变量影响着服务器的行为。修改系统变量的方式如下。
在服务器启动时通过添加相应的启动选项进行修改在运行时使用SET语句修改下面两种方式都可以 SET [GLOBAL|SESSION] 系统变量名值;SET [(GLOBAL|SESSION] 系统变量名 值;
查看系统变量的方式如下所示:
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
状态变量是用来显示服务器程序运行状态的我们可以使用下面的命令来查看而且只能查看:
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];