質問: WADAX TypeBのPHPMyAdminにて、max_allowed_packetの制約についてサポートに確認したところ、cronジョブにて設定可能である旨の回答を得ました。 コントロールパネル内cron設定にて以下のコマンドを実行して頂ければと存じます。 mysql -u [ユーザー名] -p[パスワード] [データベース名] < [ファイル名] これに従い、ドキュメントルート上に「cron.sh」を作成し、その中身として mysql -u user01 -p'password01(*-' database01 < /home/1234567890/user01/cron.sql を設定。 またcron.sqlとして set global max_allowed_packet=33553408; を設定し、これら2つのファイルをアップロードしました。 コントロールパネルにてcronの設定を行い /home/1234567890/user01/cron.sh を指定して実行してみたところ、 ERROR 1045 (28000): Access denied for user 'user01'@'localhost' (using password: YES) となってしまいmax_allowed_packetの変更が出来ませんでした。 上記の通りパスワードに「(」を含んでいるため「'」にて囲っているのですが、うまくいきません。 どなたかお知恵をお貸し頂けないでしょうか? また「cron.sh」の中身として mysql -u user01 -p'password01(*-' database01 -e "set global max_allowed_packet=33553408;" でも試しましたが結果は同じです。(パスワードもSQL文の囲みも「'」「"」共に試しましたが上手くいきませんでした。) ダメであろうことは分かっていた上でcron自体に mysql -u user01 -p'password01(*-' database01 < /home/1234567890/user01/cron.sql mysql -u user01 -p'password01(*-' database01 -e "set global max_allowed_packet=33553408;" の両方とも設定を試みてみましたが、コマンドが間違っているとして設定できませんでした。 ※-uの後のスペースの有無も試していますが、上手くいっていません。
回答: WADAXからの回答が根本的に間違っていました。 まず権限上共用サーバーでは「max_allowed_packet」はユーザーで設定できない。 またmysqlのコマンドラインにスイッチが足りない上、Version毎に指定されたファイル名でないとコマンドラインは動かない。 正しいコマンドは以下の通り mysql56 -u user01 -pPASSWORD database01 -P3316 -h127.0.0.1 < /home/1234567890/user01/cron.sql 上記コマンドならcronに直接設定可能。 ※パスワードに記号を使っていたため「'」で囲む必要が発生。そのため「'」がcron設定時にエラーとして検出され設定が不可能であった。 正直な感想ですが、少し長いと感じられる文章等を含むWordpress等の移設に伴うMySQLへのインポートは絶望的です... 例えば、1MBの画像ファイルをデータベース内にデータとして格納していたとしたら、PHPMyAdminでBase64で出力されたら簡単に1MiBは超えてしまうので、これではインポートは絶望的と言わざるを得ません。 幸いサポートにて、運用部署に強く申し入れること、一時的にmax_allowed_packetの値の変更を申し出て頂けましたが...