2.MySQL配置

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.iniBASEDIR指的是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.在命令行和配置文件中的配置项区别
  1. 部分配置项只有在命令行,例如:mysqld --defaults-file
  2. 如同出现同样配置,则采用命令行中的配置

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 设置系统变量
  1. 通过配置文件或者启动参数来设置
  2. 在运行过程中设置
    2.1 不同作用范围的系统变量
    • GLOBAL(全局范围):有些系统变量是统一的,例如:客户端数量(max_connections)、查询缓存的大小(query_cache_size)等。
    • SESSION(会话范围):不同一的系统变量,例如:客户端创建库或者表时,默认的存储引擎。
      我们可以在客户端连接期间设置系统变量:
    SET [GLOBAL/SESSION] 系统变量名 = 值;
    SET @@(GLOBAL/SESSION]).系统变量名 = 值;
    
    2.2 查看不同范围的系统变量范围
    SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配模式];
    
    2.3
    • 并不是所有的系统变量都具有CLOBAL和SESSION的作用范围
    • 有些系统变量是只读,并不能设置值
  3. 启动选项和系统变量
    • 大部分的系统变量都可以当做启动项传入
    • 有些系统变量是在程序运行过程中生成的
    • 有些启动选项也不是系统变量,例如: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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值