質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1912閲覧

WADAXの共用サーバーでのMysqlの設定値の変更(max_allowed_packet)

morpheus

総合スコア6

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/11/28 13:55

編集2018/11/28 14:08

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の後のスペースの有無も試していますが、上手くいっていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

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の値の変更を申し出て頂けましたが…

投稿2018/11/30 15:35

morpheus

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問