2.1 启动选项和配置文件
2.1.1 在命令行上使用选项
服务启动时禁止各客户端使用TCP/IP网络通信
mysqld--skip-networking
改变默认的存储引擎
mysqld --default-storage-engine=MyISAM
使用mysqld --help 查看其他命令;
2.1.2 配置文件
MySQL 在启动时,会在多个路径下寻找配置文件,这些文件有些是固定的,有些可以在命令行指定。
1. 配置文件路径
windows
路径名 | 备注 |
---|---|
%WINDIR%\my.ini | |
C:\my.ini | |
BASEDIR\my.ini | BASEDIR指的是MySQL的安装路径 |
defaults-extra-file | 命令行指定的额外配置文件路径 |
%APPDASTA%\MySQL.mylogin.cnf | 登录路径选项(仅限客户端) |
unix
路径名 | 备注 |
---|---|
etc/my.cnf | |
/etc/mysql/my.cnf | |
SYSCONFIGDIR/my.cnf | |
M Y S Q L H O M E / m y . c n f MYSQL_HOME/my.cnf MYSQLHOME/my.cnf | 特定于服务器的选项(仅限服务器) |
default-extra-file | 命令行指定的额外配置文件路径 |
~/.my.cnf | 特定于用户的选项 |
~/.mylogin.cnf | 特定于用户的登录路径选项(仅现客户端) |
2. 配置文件内容
配置文件中的启动选项被划分若干各组,每组用中括号[]括起来,
[server]
(具体的启动选项)
skip-networking
default-storage-engine=MyISAM
[mysqld]
(具体的启动选项)
[mysqld_safe]
(具体的启动选项)
[client]
(具体的启动选项)
[mysql]
(具体的启动选项)
[mysqladmin]
(具体的启动选项)
程序名 | 类别 | 能读取的组 |
---|---|---|
mysqld | 启动服务器 | [mysqld]、[server] |
msyqld_safe | 启动服务器 | [mysqld]、[server]、[msyqld_safe] |
msyqld.server | 启动服务器 | [mysqld]、[server]、[msyqld_safe] |
msyqld | 启动客户端 | [mysqld]、[client] |
mysqladmin | 启动客户端 | [mysqladmin]、[client] |
mysqlclient | 启动客户端 | [mysqlclient]、[client] |
3.特性的MySQL版本的专用选项组
我们可以定义一个[mysql-5.7]的选项组,他的含义和[mysqld]相同,只不过只有版本号为5.7的mysqld程序才能使用这个选项组中的选项。
4.配置文件的优先级
按照 配置文件路径 下的表中给定的顺序,依次读取,如果存在重复项,则按照最后的配置文件的配置项为准
5.通一个配置文件中多个组的优先级
例如:mysqld 可以访问[mysqld]、[server]组,那么将以最后一个出现在组中的启动项为准,下面例子中以[msyqld]组中的配置项为准。
[server]
default-storage-engine=InnoDB
[mysqld]
default-straoge-engine=MyISAM
6.defaults-file 的使用
假设我们不想让MySQL在默认路径下搜索配置,我们可以执行如下命令:
mysqld --defaults-file=/temp/myconfig.txt
这样一来,在程序启动时将值在/temp/myconfig.txt路径下搜索配置文件。
7.在命令行和配置文件中的配置项区别
- 部分配置项只有在命令行,例如:mysqld --defaults-file
- 如同出现同样配置,则采用命令行中的配置
2.2系统变量
2.2.1简介
在MySQL的运行过程中,大部分的都是可以随时改变,而无需停止并重启服务器。
2.2.2 查看系统变量
使用如下命令查看MySQL服务器程序支持的系统变量以及他们的值:
SHOW VARIABLES LIKE [匹配模式];
例如:
mysql> SHOW VARIABLES LIKE 'default-storage-engine';
mysql> SHOW VARIABLES LIKE 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version | 5.7.24 |
+---------------+--------+
1 row in set (0.01 sec)
mysql> SHOW VARIABLES like 'default%';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| default_authentication_plugin | mysql_native_password |
| default_password_lifetime | 0 |
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| default_week_format | 0 |
+-------------------------------+-----------------------+
5 rows in set (0.00 sec)
2.2.3 设置系统变量
- 通过配置文件或者启动参数来设置
- 在运行过程中设置
2.1 不同作用范围的系统变量- GLOBAL(全局范围):有些系统变量是统一的,例如:客户端数量(max_connections)、查询缓存的大小(query_cache_size)等。
- SESSION(会话范围):不同一的系统变量,例如:客户端创建库或者表时,默认的存储引擎。
我们可以在客户端连接期间设置系统变量:
2.2 查看不同范围的系统变量范围SET [GLOBAL/SESSION] 系统变量名 = 值; SET @@(GLOBAL/SESSION]).系统变量名 = 值;
2.3SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配模式];
- 并不是所有的系统变量都具有CLOBAL和SESSION的作用范围
- 有些系统变量是只读,并不能设置值
- 启动选项和系统变量
- 大部分的系统变量都可以当做启动项传入
- 有些系统变量是在程序运行过程中生成的
- 有些启动选项也不是系统变量,例如:defaults-file
2.3 状态变量
为了便于了解服务器程序的运行情况,MySQL服务器程序中维护许多关于程序运行的状态变量,例如:Threads_connected(表示当前多少客户端与服务建立连接)、Innodb_rows_update表示更新了多少条以InnoDB为存储引擎的表中记录。
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
mysql> show status like '%thread%';
+------------------------------------------+-------+
| Variable_name | Value |
+------------------------------------------+-------+
| Delayed_insert_threads | 0 |
| Performance_schema_thread_classes_lost | 0 |
| Performance_schema_thread_instances_lost | 0 |
| Slow_launch_threads | 0 |
| Threads_cached | 0 |
| Threads_connected | 1 |
| Threads_created | 1 |
| Threads_running | 1 |
+------------------------------------------+-------+
8 rows in set (0.00 sec)