mysql服务端可以指定允许同时接入的客户端数量max-connections、客户端与服务器的通信方式、表的默认存储引擎default_storage_engine等等设置项,使得我们可以更加灵活地使用它。
进入正题
我们讲的是基于linux系统的,本文我们主要讲一下:
1、有哪些常用的启动选择配置方式?
2、采用配置文件 配置启动选项有哪些注意点?配置文件读取的优先级?
3、如何查看和设置系统变量?
> 有哪些常用的启动选择配置方式?
1、命令行配置
如:mysqld --skip-networking
该命令行表示启动mysql服务端,同时服务端不允许客户端通过tcp/ip方式连接上来。
2、配置文件配置
如在/etc/my.cnf文件下设置:
[mysqld]
skip-networking
>采用配置文件 配置启动选项有哪些注意点?配置文件的优先级?
1、配置文件配置启动选项时,可以有多个路径进行配置,他们的依次顺序为:
路径 | 说明 |
---|---|
/etc/my.cnf | 系统级的配置 |
/etc/mysql/my.cnf | |
SYSCONFDIR/my.cnf | |
$MYSQL_HOME/my.cnf | 特定于服务器的选项(仅限服务器) |
defaults-extra-file | 命令行指定的额外配置文件件路径 |
~/.my.cnf | 用户特定选项 |
~/.mylogin.cnf | 用户特定的登录路径选项(仅限客户端) |
下面的配置文件的配置会将上面的覆盖,偏向于用户自定义的配置会将系统级的配置覆盖。
也就是说,如果你在/etc/my.cnf文件下配置了:
[mysqld]
default_storage_engine=Innodb
而在 etc/mysql/my.cnf 配置了
[mysqld]
default_storage_engine=MyIsam
那么服务器启动后,表的存储引擎采用的是 MyIsam。
2、配置文件中的配置会被分为若干个组,每个组有一个组名。如:
[server]
(具体的启动选项…)
[mysqld]
(具体的启动选项…)
[mysqld_safe]
(具体的启动选项…)
[client]
(具体的启动选项…)
[mysql]
(具体的启动选项…)
[mysqladmin]
(具体的启动选项…)
[server] 和[client]是两个特殊的组,针对服务端的应用,[server]组下的配置都会起作用。针对客户端的应用,[client]组下的配置都会起作用。
3、如果一个配置项既出现在配置文件里,又出现在命令行中,那么以命令行中的启动选项为准。
> 如何查看和设置系统变量
首先系统变量有其作用范围,主要有global(作用于全局)与session(只作用于当前会话,对其他客户端连接是不生效的)两种。
如果我们想查看当前使用的默认存储引擎,可以使用:
show variables like '%default_storage_engine%';
如果你前面不加session还是global,默认查看的系统变量是session级别的。
你可以通过:
set session default_storage_engine=innodb;
修改系统变量。
也可以通过:
show global variables like '%default_storage_engine%';
show session variables like '%default_storage_engine%';
查看全局和会话级的系统变量。
拓展
另外还有一些是状态变量:
你可以通过
show global status like 'max%';
类似的方式查看。
你可以看到服务端最多被使用的连接数是79,时间点在2020-12-17 16:55:01。