MySQLを使うのにあれば便利ですよね
以前は、phpmyadminを使ったりしていました。
ですが、DBをExportする時に、大きなサイズのテーブルは途中で切れてしまったりして、完全にバックアップが取れないという不具合が一向に直らないので、結局sshでmysqldumpを叩くことが多かった。
つい先日、同業の人が、mysqldumpが使用後、メモリ(キャッシュ?)を開放しないので、サーバのメモリが不足して喘ぐと愚痴っていました。
本当かどうかは別として、自分の環境では、mysqldumpで特に困った現象は起きていないのですが…。
どうせ、sshで作業するなら、MySQL Workbenchならssh越しに利用できたはず。
という記憶を手繰り・・・。設定してみることに。
id_rsaを指定して、ポートやらごにょごにょっと作業したら、サクッと繋がった。
Exportしてみると動作しない
Error Unhandled exception: 'builtin_function_or_method' object has no attribute '__getitem__'
this error occurs even if you try to backup a single table
なんてダイアログが表示されて、Exportできないではないか・・・。残念。
と終わっていては、意味がないので、少し調べることに。
試してみると、動作しなくもない。
Optionsのところで、[Export to Self-Contained File]を選択すれば、落とすことはできた。ただ、すべてのデータを1ファイルにしてくれちゃうのは、Restoreするのに都合が悪い。
特定のテーブルだけ戻したりしたいわけで・・・。
[Export to Dump Project Folder]を選択すると、他のどの設定を変えても、Errorを吐いて動作しない。
Logを調べてみると、
01:08:00 [INF][wb_admin_control.py:server_polling_thread:497]: Monitoring thread running...
01:09:05 [ERR][ pymforms]: Unhandled exception in Python code: 'builtin_function_or_method' object has no attribute '__getitem__'
<traceback object at 0xb6f6be8>
01:11:20 [ERR][ python]: Error forwarding notification to PythonTraceback (most recent call last):
01:11:20 [ERR][ python]: File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/workbench/notifications.py", line 31, in _the_observer
01:11:20 [ERR][ python]: for obs, nam, obj in self.observers:
01:11:20 [ERR][ python]: File "/Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export.py", line 1712, in start
01:11:20 [ERR][ python]: args.append['--skip-triggers']
01:11:20 [ERR][ python]: TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
01:11:25 [ERR][wb_admin_main.py:shutdown:210]: shutting down admn
どうも、wb_admin_export.pyが怪しい。
ググってみる。
「I got an error message when I try to create a database backup」に同じ症状が報告されていて、解決方法らしきものが、出ていた。
[11 Dec 12:55] ale prieto
Apparently, as Umesh says, the problem are the brakets on line 1712.
I changed the line:
args.append['- skip-triggers']
by:
args.append('- skip-triggers')
and it worked.
I also changed the line 1717: args.append ['- no-create-info']
by: args.append ('- no-create-info')
I hope might help :)
ということらしいので、実際に書き換えてみる。
エディタで、/Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export.py を開いてやる。
1712行目を確認すると、確かに
args.append['--skip-triggers']となっている。この[ ]が間違っているらしいので、( )に変更してやる。
さらに、1715行目が
args.append['--no-create-info']になっているので、同様に( )に直しておく。
保存して、MySQL Workbenchを再度起動してやる。
サイトに接続し、export!!!と叫びつつ実行。
うまく、落ちるようになりました。
単純な文法上のミスですね〜。
とりあえず、動作するようになって嬉しい。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。