メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

MySQL WorkbenchでERRORを回避

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!!!と叫びつつ実行。

うまく、落ちるようになりました。
単純な文法上のミスですね〜。

とりあえず、動作するようになって嬉しい。







コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ