MySQL的配置文件和启动选项

一、MySQL读取配置文件的顺序

注意:有时候虽然/etc下有配置文件,但是安装目录下有配置文件,任然会使用安装目录下的配置文件

[root@mysql ~]# mysql --help --verbose | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

可以有多个配置文件,后面的参数会替换前面的参数文件。

二、如何查看MySQL的配置文件

MySQL实例在启动时,会先读取配置参数文件my.cnf。my.cnf一般会放在MySQL的安装目录中,用户也可以放在其他目录加载。安装MySQL后,系统中会有多个my.cnf文件,有些是用于测试的。使用“locate my.cnf"或"find / -name my.cnf"命令可以列出所有的my.cnf文件。

2.1、查看是否使用了指定路径的配置文件

[root@mysql log]# ps -ef | grep mysql
root       5564      1  0 20:31 pts/0    00:00:00 /bin/sh /mysql3306/bin/mysqld_safe --datadir=/mysql3306/data --pid-file=/mysql3306/data/mysql.pid
mysql      5740   5564  0 20:31 pts/0    00:00:01 /mysql3306/bin/mysqld --basedir=/mysql3306 --datadir=/mysql3306/data --plugin-dir=/mysql3306/lib/plugin
--user=mysql --log-error=/mysql3306/log/mysql.err3 --pid-file=/mysql3306/data/mysql.pid --socket=/tmp/mysql.sock root 5977 1769 0 20:34 pts/0 00:00:00 grep --color=auto mysql [root@mysql log]# ps -ef | grep mysql | grep my.cnf

没有输出表示没有使用指定路径的配置文件。

如果没有设置使用指定目录的my.cnf,MySQL启动时会读取安装目录根目录及默认目录下的my.cnf文件。

2.2、查看配置文件路径

[root@mysql log]# whereis my.cnf
my: /etc/my.cnf

三、参数说明

[mysqld]               MySQL服务器启动时候使用的参数

[mysql]                登陆后命令行的参数

[mysqlclient]         所有客户端登陆后使用的参数

3.1 查看所有参数

(root@localhost) [(none)]> show variables\G

查看某一个参数

(root@localhost) [(none)]> show variables like 'log_error';
+---------------+---------------------------+
| Variable_name | Value                     |
+---------------+---------------------------+
| log_error     | /mysql3306/log/mysql.err2 |
+---------------+---------------------------+
1 row in set (0.02 sec)

查看相关所有参数

(root@localhost) [(none)]> show variables like 'innodb%';
+------------------------------------------+------------------------+
| Variable_name                            | Value                  |
+------------------------------------------+------------------------+
| innodb_adaptive_flushing                 | ON                     |
| innodb_adaptive_flushing_lwm             | 10                     |
| innodb_adaptive_hash_index               | ON                     |
| innodb_adaptive_hash_index_parts         | 8                      |

3.2、参数的分类

全局的 :所有回话有效

回话级别的:当前的回话有效

设置回话级别的参数

(root@localhost) [(none)]> set session long_query_time=5;
Query OK, 0 rows affected (0.01 sec)

(root@localhost) [(none)]> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
1 row in set (0.01 sec)

查看全局变量参数,修改全局变量后,重启数据库后参数失效

(root@localhost) [(none)]> show global variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

查看连接的线程

(root@localhost) [(none)]> show processlist;
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
|  2 | root | localhost | NULL | Query   |    0 | starting | show processlist |
|  3 | root | localhost | NULL | Sleep   |    3 |          | NULL             |
+----+------+-----------+------+---------+------+----------+------------------+
2 rows in set (0.00 sec)

 四、启动选项说明

可在bin目录下启动

[root@mysql bin]# mysqld --defaults-file=/etc/my.cnf --user=root  &
[1] 4380

https://zhuanlan.zhihu.com/p/542173634?utm_id=0

 

posted @ 2024-01-13 12:03  中仕  阅读(111)  评论(0编辑  收藏  举报