MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLが再起動された場合でもグローバルevent_scheduler=ONを設定するにはどうすればよいですか?


MySQLが再起動された場合でも、グローバルevent_scheduler=ONを設定できる単一の方法があります。グローバルシステム変数をオンに設定する必要があり、MySQLが再起動した場合でもこのシステム変数を使用する必要があります。

このために、selectステートメントを使用してシステム変数@@event_schedulerを使用しています。クエリは次のとおりです。

mysql> select @@event_scheduler;

出力は次のとおりです。

+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.00 sec)

ここで、MySQLを再起動します。クエリは次のとおりです。

mysql> restart;
Query OK, 0 rows affected (0.00 sec)

サーバーを再起動した後、しばらくの間接続が失われます。クエリを使用すると、次のエラーメッセージが表示されます。

mysql> select @@event_scheduler;
ERROR 2013 (HY000): Lost connection to MySQL server during query

しばらくして、selectステートメントを使用してシステム変数@@ event_schedulerを再度使用すると、出力は同じ、つまりONになります。クエリは次のとおりです。

mysql> select @@event_scheduler;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.04 sec)

または、my.cnfファイルまたはmy.iniファイルでevent_schedulerをONに設定できます。ステートメントは次のとおりです。

[mysqld]
event_scheduler = ON;

これで、event_schedulerがオンになります。サーバーが再起動するかどうかに関係なく、サーバーは常にオンになります。


  1. MySQLでsql_modeを永続的に設定するにはどうすればよいですか?

    Windowsオペレーティングシステムを使用している場合は、ディレクトリmy.cnfまたはmy.iniファイルを確認してください。 mysql> select @@datadir; 以下は出力です +---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +----

  2. MySQLでINFORMATION_SCHEMA.key_column_usageのパフォーマンスの低下を修正するにはどうすればよいですか?

    以下に示すように、GLOBAL変数を使用できます- SET global innodb_stats_on_metadata =0; 上記の構文を含めると、INFORMATION_SCHEMA.key_column_usageにかかる時間が短縮され、パフォーマンスが向上します。 クエリは次のとおりです- mysql> set global innodb_stats_on_metadata =0; Query OK, 0 rows affected (0.00 sec) mysql> SELECT REFERENCED_TABLE_NAME,TABLE_NAME,COLUMN_NA