MySQL サーバーで max_allowed_packet サイズを変更する

Mehvish Ashiq 2023年6月20日
  1. MySQL サーバーで max_allowed_packet サイズを変更する
  2. Windows OS を使用して MySQL サーバーの max_allowed_packet サイズを変更する
  3. Ubuntu OS を使用して MySQL サーバーの max_allowed_packet サイズを変更する
MySQL サーバーで max_allowed_packet サイズを変更する

このチュートリアルでは、MySQL サーバーで max_allowed_packet サイズを変更する方法について説明します。 それを学ぶために、Windows 10 と Linux (Ubuntu) の 2つのオペレーティング システムを使用します。

MySQL サーバーで max_allowed_packet サイズを変更する

max_allowed_packet のデフォルト値より大きいファイルをアップロードしようとすると、max_allowed_packet より大きいパケットは許可されていません というエラーが表示されます。

このエラーを解消するには、max_allowed_packet のサイズを変更する必要があります。 しかしその前に、次のようにデフォルト値を確認しましょう。

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

出力:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.06 sec)

現在、max_allowed_packet のサイズは 4MB、つまり 4194304 バイトです。 MySQL ドキュメント を考慮すると、MySQL クライアントとサーバーには独自の max_allowed_packet サイズがあります。

SHOW VARIABLES LIKE 'max_allowed_packet'; を使用した上記の値 query は MySQL サーバー側の値です。 より大きなパケットを処理したい場合は、max_allowed_packet の値を増やす必要があります。

それを 50MB に変更したいとします。 これは、サーバー側 (my.ini ファイルの [mysqld] という名前のセクション) とクライアント側 ([mysql] という名前のセクション) の構成ファイルを更新することで実行できます。 my.ini ファイル内の [client])。

SUPER 特権 (パーミッション) がある場合は、SQL クエリを使用してこの設定を変更することもできます。 どうやって? 以下の両方のソリューションを見てみましょう。

Windows OS を使用して MySQL サーバーの max_allowed_packet サイズを変更する

  1. Windows コマンド ラインを開き、インストール パスをナビゲートします。 デフォルトの場所を変更しなかった場合、MySQL サーバーは C:\Program Files\MySQL\MySQL Server 8.0 にインストールされます。

  2. cd bin を使用して bin フォルダーに移動します。

  3. mysql -u root -p password と入力して MySQL サーバーにログインします。 root ユーザーとして入ります。 ユーザー名パスワード を使用できます。

  4. 入ったら、次のクエリを実行して、MySQL サーバーの max_allowed_packet サイズを変更します。

    mysql> SET GLOBAL max_allowed_packet=52428800;
    
  5. 次のクエリを再度実行して、変更を確認します。

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    出力:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 52428800|
    +--------------------+---------+
    1 row in set (0.00 sec)
    

以下に示す解決策は、デフォルトの場所に MySQL サーバーをインストールした場合、デフォルトのパスにある構成ファイルを使用することです。 構成ファイルのパスは C:\ProgramData\MySQL\MySQL Server 8.0\my.ini です。

  1. my.ini ファイルを開きます。

  2. [mysqld] セクションを検索し、このセクションの下に次の 1 行を追加します。

    max_allowed_packet=50M
    
  3. ファイルを保存して閉じます。

  4. MySQL サーバーを再起動して、変更を表示します。

Ubuntu OS を使用して MySQL サーバーの max_allowed_packet サイズを変更する

MySQL Server に入ると、Windows OS で使用したのと同じクエリを Ubuntu でも使用できます。 手順を以下に示します。

  1. Ubuntu ターミナルを開き、sudo su を使用してスーパーユーザーとしてログインします。

  2. さらに、MySQL Server にログインします。

  3. 変数を変更する前に、変数のデフォルト値または以前の値を確認することをお勧めします。 そのために、次のクエリを使用できます。

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    出力:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 67108864|
    +--------------------+---------+
    1 row in set (0.00 sec)
    
  1. 次のクエリを実行して、max_allowed_packet の値を 70MB (73400320 バイト) に更新します。

    mysql> SET GLOBAL max_allowed_packet=73400320;
    
  2. SHOW VARIABLES LIKE 'max_allowed_packet'; を実行できます。 クエリを実行して、変更が発生したかどうかを確認します。

構成ファイルの編集に慣れている場合は、次の解決策が特に適しています。

  1. /etc/mysql/mysql.conf.d/mysqld.cnf パスにある設定ファイルを開きます。

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. [mysqld] という名前のセクションで max_allowed_packet を検索し、その値を選択した値に変更します。 そこにない場合は、[mysqld] の下に次の行を追加します。

    これを 70M に変更していることを忘れないでください。 ただし、番号を書いても構いません。

    max_allowed_packet=70M
    
  3. ファイルを保存して終了します。

  4. systemctl restart mysql を使用して MySQL サーバーを再起動し、次のコマンドを実行して更新を確認します。

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    

    出力:

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 73400320|
    +--------------------+---------+
    1 row in set (0.03 sec)
    
著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - MySQL Server