MySQL サーバーで max_allowed_packet サイズを変更する
-
MySQL サーバーで
max_allowed_packet
サイズを変更する -
Windows OS を使用して MySQL サーバーの
max_allowed_packet
サイズを変更する -
Ubuntu OS を使用して 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
サイズを変更する
-
Windows コマンド ラインを開き、インストール パスをナビゲートします。 デフォルトの場所を変更しなかった場合、MySQL サーバーは
C:\Program Files\MySQL\MySQL Server 8.0
にインストールされます。 -
cd bin
を使用してbin
フォルダーに移動します。 -
mysql -u root -p password
と入力して MySQL サーバーにログインします。root
ユーザーとして入ります。ユーザー名
とパスワード
を使用できます。 -
入ったら、次のクエリを実行して、MySQL サーバーの
max_allowed_packet
サイズを変更します。mysql> SET GLOBAL max_allowed_packet=52428800;
-
次のクエリを再度実行して、変更を確認します。
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
です。
-
my.ini
ファイルを開きます。 -
[mysqld]
セクションを検索し、このセクションの下に次の 1 行を追加します。max_allowed_packet=50M
-
ファイルを保存して閉じます。
-
MySQL サーバーを再起動して、変更を表示します。
Ubuntu OS を使用して MySQL サーバーの max_allowed_packet
サイズを変更する
MySQL Server に入ると、Windows OS で使用したのと同じクエリを Ubuntu でも使用できます。 手順を以下に示します。
-
Ubuntu ターミナルを開き、
sudo su
を使用してスーパーユーザーとしてログインします。 -
さらに、MySQL Server にログインします。
-
変数を変更する前に、変数のデフォルト値または以前の値を確認することをお勧めします。 そのために、次のクエリを使用できます。
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
出力:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 67108864| +--------------------+---------+ 1 row in set (0.00 sec)
-
次のクエリを実行して、
max_allowed_packet
の値を 70MB (73400320 バイト) に更新します。mysql> SET GLOBAL max_allowed_packet=73400320;
-
SHOW VARIABLES LIKE 'max_allowed_packet';
を実行できます。 クエリを実行して、変更が発生したかどうかを確認します。
構成ファイルの編集に慣れている場合は、次の解決策が特に適しています。
-
/etc/mysql/mysql.conf.d/mysqld.cnf
パスにある設定ファイルを開きます。$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-
[mysqld]
という名前のセクションでmax_allowed_packet
を検索し、その値を選択した値に変更します。 そこにない場合は、[mysqld]
の下に次の行を追加します。これを 70M に変更していることを忘れないでください。 ただし、番号を書いても構いません。
max_allowed_packet=70M
-
ファイルを保存して終了します。
-
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)