2.1 で「複製」や「バックアップ」がエラー

2.1 で「複製」や「バックアップ」がエラー

by Toshihiro KITA -
Number of replies: 6
Picture of Translators
どなたか、2.1.1 や 2.1.2 を使っている方はおられますか?

私の所では、試験的にセットアップしてみたら、コースの手動バックアップ時に赤い背景のエラーに
なってしまいます。 apacheのログを見たら

[Tue Nov 08 22:53:11 2011] [error] [client ..] Potential coding error - existing temptables found when disposing database. Must be dropped!, referer: http://foo.bar/m21/course/mod.php?duplicate=1&sesskey=T5Uqufpdea&sr=0

のようなエラーです。

コース内の要素の「複製」(×2のアイコンのやつ)を実行しても同じエラーになります。

ちゃんと動いている人はいますでしょうか?


Average of ratings: -
In reply to Toshihiro KITA

Re: 2.1 で「複製」や「バックアップ」がエラー

by Toshimi Hatanaka -

2.1.2 です。

コースの手動バックアップ、コース内要素(リソース、活動)の複製も問題なくできていますよ。今のところ大きなエラーはなく安定稼働しています。

Average of ratings: 有益(Useful) (1)
In reply to Toshimi Hatanaka

Re: 2.1 で「複製」や「バックアップ」がエラー

by Toshihiro KITA -
Picture of Translators
早速ありがとうございました。
DBの権限設定が不足していたのが原因でした。
In reply to Toshihiro KITA

Re: 2.1 で「複製」や「バックアップ」がエラー

by Mitsuhiro Yoshida -
Picture of Developers Picture of Particularly helpful Moodlers Picture of Translators

「サイト管理 > 開発 > デバッグ > デバッグメッセージ (debug)」を「DEVELOPER: 開発者のための特別Moodleデバッグメッセージ」にして、下記環境にてコースの手動バッグアップを実行しましたが、エラー表示なしにバックアップできるようです。

Moodle 2.1.2+ (Build: 20111102)
REDHAT Enterprise Linux 5.2
Apache 2.2.21
PHP 5.3.8
MySQL 5.0.92

問題解決には、下記投稿のDaniel NelsonさんのMySQLユーザ権限付与に関する部分も参考になるかと思います。

[Using Moodle: Course Backup fails]
http://moodle.org/mod/forum/discuss.php?d=169014


Average of ratings: 有益(Useful) (1)
In reply to Mitsuhiro Yoshida

Re: 2.1 で「複製」や「バックアップ」がエラー

by Hiroyuki H -

Moodle1.9では、データベースユーザに必要な権限は次のとおりでした。

SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER
http://docs.moodle.org/19/en/RedHat_Linux_installation )
実際に、本学のMoodle1.9系では上記の権限でバックアップを含め正常動作しています。(MySQLは5.0.77)

Moodle2.xでは、吉田様の投稿でお示し頂いたスレッドにもあるように、CREATE TEMPORARY TABLES権限が必要になっています。(MySQLはバージョン5.0.25が必要)
SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER
http://docs.moodle.org/20/en/Create_Moodle_site_database ) 

現在設定されているデータベースユーザの権限は、下記のSQLを実行することで確認できます。

 mysql> show grants for 'DBUSER名'@'ホスト名';

ただ、当方で正常稼動しているMoodle2.1.2+にて、下記命令にてCREATE TEMPORARY TABLES権限をデータベースユーザから剥奪しバックアップを実行したところ、バックアップ時にエラーは発生するものの、喜多先生の投稿にあるエラーとはメッセージが異なりました。参考までに、下記のエラーが発生しました。

 Debug info: Access denied for user 'DBUSER名'@'ホスト名' to database 'DB名'
CREATE TEMPORARY TABLE mdl_backup_ids_temp ( 略

喜多先生のエラーもデータベースっぽい感じではありますが、私の理解ではTEMPORARY テーブルは接続ごとに作られ、接続が終了すると自動的にドロップされるので、existing temptables found というのがTEMPORARYテーブルを指しているとすればちょっと腑に落ちない気がいたします。

http://dev.mysql.com/doc/refman/5.1/ja/create-table.html
http://dev.mysql.com/doc/refman/5.1/ja/drop-table.html 

試験環境とのことですので、原因を特定せず復旧を優先させるのであれば、MySQLサーバ(サービス)を再起動してみるとかでしょうか。

Average of ratings: 有益(Useful) (4)
In reply to Hiroyuki H

Re: 2.1 で「複製」や「バックアップ」がエラー

by Toshihiro KITA -
Picture of Translators
誠にありがとうございました。実験まで色々していただいて、恐縮です。
その通り、DBの権限設定が不足していたのが原因でした。
すべての権限を与えたら、バックアップも×2もうまく生きました。
In reply to Mitsuhiro Yoshida

Re: 2.1 で「複製」や「バックアップ」がエラー

by Toshihiro KITA -
Picture of Translators
早速ありがとうございました。DBの権限設定が不足していたのが原因でした。