mysql配置文件生效测试

问题:如何查看和配置mysql的配置文件,mysql中的配置文件对于调试mysql和排查错误比较有用,例如缓存设置等!

1、如何查找mysql配置文件

在mac或者linux上安装mysql或者mariadb的时候一般采用 homebrew install xxx
就自动安装了,安装完成以后如何查看配置文件呢?

执行如下命令:

mysqld --help --verbose | more
 (查看帮助, 按空格下翻)
你会看到开始的这一行(表示配置文件默认读取顺序)

我执行如下命令:

ss:my.cnf.d wqp$ mysqld --help --verbose | more
2016-07-30 10:06:33 140735210475520 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2016-07-30 10:06:33 140735210475520 [Note] Plugin 'FEEDBACK' is disabled.
mysqld  Ver 10.1.13-MariaDB for osx10.11 on x86_64 (Homebrew)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/usr/local/etc/my.cnf ~/.my.cnf

最后一行显示,mysql启动时会按照一下顺序读取配置文件。

/usr/local/etc/my.cnf ~/.my.cnf
通常这些位置是没有配置文件的, 所以要自己建一个

2、如何自建?

首先找到一个配置模板,或者从网上找一个典型的配置模板,这里从以下 目录copy
“`
ss:~ wqp cd/usr/local/mysql/supportfiles/ss:supportfileswqp ls
binary-configure config.medium.ini magic my-innodb-heavy-4G.cnf my-medium.cnf mysql-log-rotate mysqld_multi.server
config.huge.ini config.small.ini my-huge.cnf my-large.cnf my-small.cnf mysql.server ndb-config-2-node.ini

 **拷贝到第一个默认读取目录**

ss:support-files wqp cpmymedium.cnf/usr/local/etc/my.cnfss:supportfileswqp pwd
/usr/local/mysql/support-files


然后重启mysql即可:

mysql.server start
mysql.server stop

####**如何查看my.inf是否生效呢???**
一个简单的办法,就是在my.cnf中修改存储引擎。
1、首先查看当前数据库的存储引擎,以下是两种方式:

MariaDB [prf]> show engines;
-> //
+——————–+———+————————————————————————————————–+————–+——+————+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+——————–+———+————————————————————————————————–+————–+——+————+
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| SEQUENCE | YES | Generated tables filled with sequential values | YES | NO | YES |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, foreign keys and encryption for tables | YES | YES | YES |
+——————–+———+————————————————————————————————–+————–+——+————+
8 rows in set (0.00 sec)

MariaDB [prf]> show variables like ‘%storage_engine%’;
-> //
+—————————-+——–+
| Variable_name | Value |
+—————————-+——–+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | |
| enforce_storage_engine | |
| storage_engine | InnoDB |
+—————————-+——–+
4 rows in set (0.00 sec)

以上显示,目前的默认存储引擎为innodb,现在在配置文件中修改默认存储引擎为myisam
**这里一定要注意:**
**
在my.cnf中添加配置 default-storage-engine=MYISAM
注意这个必须添加在my.cnf中的[mysqld]项目下,才能生效:如果随便添加到其他项目下,是不会生效的。上午我花费了大量的时间来查看为什么没有进行生效,浪费了不少时间。所以这里一定要注意,每一个配置项都会有[xxx]来标示,不要随便放置,否则会不起作用
**

修改完成以后:保存: 重启mysql,查看存储引擎为:

MariaDB [(none)]> show variables like ‘%storage_engin%’;
+—————————-+——–+
| Variable_name | Value |
+—————————-+——–+
| default_storage_engine | MyISAM |
| default_tmp_storage_engine | |
| enforce_storage_engine | |
| storage_engine | MyISAM |
+—————————-+——–+
“`
如上显示,已经修改为myisam了。

reference
比较详细说明

你可能感兴趣的:(mysql)