MySQLデータベースパラメータの表示と変更

MySQLデータベースパラメータの表示と変更

MySQLはSQLの処理と実行を制御するために多数のパラメータに依存しています。mysql.cnfファイルはmysqlのデフォルトのパラメータ設定ファイルであり、mysqlが起動すると、特定の場所でこのファイルを見つけて読み取ります。my.cnfがなくても、MySQLインスタンスの初期起動に影響はありません。パラメータ値は、MySQLのコンパイル時に指定されたデフォルト値と、ソースコードで指定されたパラメータのデフォルト値によって異なります。

1つは、MySQLパラメータの分類

MySQLパラメータは、静的(静的)パラメータと動的(動的)パラメータに分けることができますが、インスタンスのライフサイクル中にパラメータ値を変更して有効にできるかどうかが異なります。

1.静的パラメーター

静的パラメーターは、データベースの起動時に変更できません。静的パラメーターの設定を有効にするには、再起動する必要があります。例:log_slave_updates、back_log、log_bin、lower_case_table_names。静的パラメータの場合、グローバルレベルとセッションレベルの違いはありません。

2.動的パラメーター

動的パラメータはデータベースの起動時に変更できます。動的パラメータは、グローバルレベルとセッションレベルの2つのタイプに分けられます。セッションスコープの変更は、開かれ、後で開かれた他のセッションには影響しません。グローバルスコープパラメーターの値が変更されると、変更前に開かれていたセッションは有効にならず、新しく作成されたセッションで有効になります。

2、MySQLパラメータビュー

例としてwait_timeoutパラメータを取ります:

1.グローバルパラメータを表示する

方法1:

mysql> select @@global.wait_timeout;
+-----------------------+
| @@global.wait_timeout |
+-----------------------+
|                 28800 |
+-----------------------+
1 row in set (0.00 sec)

方法2:

mysql> show global variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.01 sec)

方法3:

mysql> select * from performance_schema.global_variables where variable_name ='wait_timeout';
+---------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+---------------+----------------+
| wait_timeout  | 28800          |
+---------------+----------------+
1 row in set (0.00 sec)

mysql> select * from performance_schema.global_variables where variable_name like '%wait_timeout%';
+--------------------------+----------------+
| VARIABLE_NAME            | VARIABLE_VALUE |
+--------------------------+----------------+
| innodb_lock_wait_timeout | 50             |
| lock_wait_timeout        | 31536000       |
| wait_timeout             | 28800          |
+--------------------------+----------------+
3 rows in set (0.01 sec)

2.セッションレベルのパラメーターを表示する

方法1:

mysql> select @@wait_timeout;
+----------------+
| @@wait_timeout |
+----------------+
|          28800 |
+----------------+
1 row in set (0.00 sec)

方法2:

mysql> select @@session.wait_timeout;
+------------------------+
| @@session.wait_timeout |
+------------------------+
|                  28800 |
+------------------------+
1 row in set (0.00 sec)

方法3:

mysql> show variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.00 sec)

方法4:

mysql> show session variables like '%wait_timeout%';
+--------------------------+----------+
| Variable_name            | Value    |
+--------------------------+----------+
| innodb_lock_wait_timeout | 50       |
| lock_wait_timeout        | 31536000 |
| wait_timeout             | 28800    |
+--------------------------+----------+
3 rows in set (0.00 sec)

方法5:

mysql> select * from performance_schema.session_variables where variable_name like '%wait_timeout%';
+--------------------------+----------------+
| VARIABLE_NAME            | VARIABLE_VALUE |
+--------------------------+----------------+
| innodb_lock_wait_timeout | 50             |
| lock_wait_timeout        | 31536000       |
| wait_timeout             | 28800          |
+--------------------------+----------------+
3 rows in set (0.00 sec)

3、MySQLパラメータの変更

1.セッションレベルのパラメーターの変更

方法1:

mysql> set wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

方法2:

mysql> set session wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

方法3:

mysql> set @@wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

方法4:

mysql> set @@session.wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

2.グローバルレベルのパラメーターの変更

方法1:

mysql> set global wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

方法2:

mysql> set @@global.wait_timeout=10;
Query OK, 0 rows affected (0.00 sec)

4番目に、パラメータ値をMySQLのデフォルト値に設定します

1.セッションレベルのパラメーター

mysql> set wait_timeout=DEFAULT;
Query OK, 0 rows affected (0.00 sec)

2.グローバルレベルのパラメーター

mysql> set global wait_timeout=DEFAULT;
Query OK, 0 rows affected (0.00 sec)

5.静的パラメーターの変更と動的パラメーターの永続的な影響

動的パラメータの設定を永続的に有効にする必要がある場合は、パラメータファイルを変更し、MySQLを再起動して有効にする必要があります。静的パラメーターは、パラメーターファイルを変更することによってのみ検証できます。といった:

# vi /etc/my.cnf
[mysqld]
wait_timeout=10

おすすめ

転載: blog.csdn.net/weixin_44377973/article/details/107069009