SET文でシステム変数を変更(セッション変数, グロバール変数)

MySQLの設定は、設定ファイルで指定する方法以外に、SET文で指定する方法があります。ここでは、SET文の使い方について紹介します。

MySQLの設定

MySQLの設定に関する動作としては、以下の点を押さえておくと良いかと思います。

  • MySQLサーバ起動時に設定ファイルが読み込まれ、システム変数が設定される。
  • 複数の設定ファイルで同じ設定項目を設定している場合、後から読み込まれるファイルが優先。
  • SET文を利用することで、サーバーの実行中にシステム変数を変更できる。
  • SET文を利用する際は、グローバル変数セッション変数の違いに注意。

SET文を利用することでサーバーの再起動なしにシステム変数を変更できます。ただし、サーバーを再起動するとSET文で設定した内容が失われてしまいます。なので、SET文で設定を変更した際には、設定ファイルの変更も必要かどうか検討する必要があります。

セッション変数とグローバル変数

SET文は、デフォルトでセッション変数を変更します。

そのため、セッション変数グローバル変数の違いを理解していないと、SET文を利用してもシステム変数が反映されないと悩むことになるので注意が必要です。

セッション変数グローバル変数の違いは以下の通りです。

セッション変数

  • 現在の接続の操作のみに影響。
  • SET文 ⇒ SET 変数名 = 設定値;

グローバル変数

  • サーバーの操作全体に影響。
  • 設定変更した後に接続した全クライアントに適用される。
  • SET文 ⇒ SET GLOBAL 変数名 = 設定値;

SET文の動作確認

SET文を利用しgroup_concat_max_lenの値を変更してみます。

group_concat_max_lenとは、group_concat関数による結果の最大長を指定するシステム変数です。

現在の設定(グローバル変数)を確認

mysql> SHOW GLOBAL VARIABLES  LIKE 'group_concat_max_len';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| group_concat_max_len | 1024  |
+----------------------+-------+
1 row in set (0.00 sec)

セッション変数を変更

mysql> SET group_concat_max_len = 10000000;
Query OK, 0 rows affected (0.00 sec)

グローバル変数は変更されてないことを確認できます。

mysql> SHOW VARIABLES  LIKE 'group_concat_max_len';
+----------------------+----------+
| Variable_name        | Value    |
+----------------------+----------+
| group_concat_max_len | 10000000 |
+----------------------+----------+
1 row in set (0.00 sec)

mysql> SHOW GLOBAL VARIABLES  LIKE 'group_concat_max_len';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| group_concat_max_len | 1024  |
+----------------------+-------+
1 row in set (0.00 sec)

グローバル変数を変更

mysql> SET GLOBAL group_concat_max_len = 10000000;
Query OK, 0 rows affected (0.00 sec)

グローバル変数が変更されたことを確認できます。

mysql> SHOW VARIABLES  LIKE 'group_concat_max_len';
+----------------------+----------+
| Variable_name        | Value    |
+----------------------+----------+
| group_concat_max_len | 10000000 |
+----------------------+----------+
1 row in set (0.00 sec)

mysql> SHOW GLOBAL VARIABLES  LIKE 'group_concat_max_len';
+----------------------+----------+
| Variable_name        | Value    |
+----------------------+----------+
| group_concat_max_len | 10000000 |
+----------------------+----------+
1 row in set (0.00 sec)
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。