MySQL WorkbenchからphpMyAdminでエラー

2012/06/03 | MySQL

MySQLを使うとき、データベースの設計はMySQL Workbenchを使用している。非常に優秀なツールで、テーブル設計はもちろんER図が描けて、そこで設定したリレーションもデータベース設計に直接反映される。まだ使い始めてそれほど立っていないのだけれど、作成した情報からSQL文を吐き出して、それをphpMyAdminから投入すればデータベースが一発で作成されるので、とても便利。

しかし今日、初めて面倒が発生した。DB設計したファイルを更新するためにMySQL Workbenchでオープンし、いつものようにカラムとテーブルの整理をしてリレーションを貼り直し、SQL出力。そして出力したSQLを使ってphpMyAdminに流し込んだのだが、これがエラーとなり途中で止まってしまう。今までこんなことなかったのに。

今までは一度もそんなことなかったし、構造を変更したテーブルで問題が発生しているようなので、明らかに作業した内容に問題がありそう・・・でもわからない。で、しばしMySQL Workbenchの画面を眺めてみる・・・。

わかりました。リレーションの貼り元のカラムと、貼り先のカラムで、どちらも型はintegerだけれど、一方はunsigned属性が付加されているが、もう片方では付加されていない。「あっ」、思いこれを修正して吐き出したSQL文を使えば、今までどおり一発でSQL文が通るようになった。

いや、まぁ自分のミスではあるのだが、そういう一般に発生しやすいミスを事前に見つけて警告してくれるツールであった欲しかったなーと思った。とはいえ便利なツールなので、今後も使い続ける予定。さらなるバージョンアップに期待する。

このエラーの意味がわからなかったのねん

2012/05/29 | JavaScript/Ajax

いったいどういうエラーなんだか、まったくわからない。

TypeError: ‘undefined’ is not an object (evaluating ‘safari.self.tab.dispatchMessage’)

もちろん「’undefined’ is not an object」の意味はわかるけれど、後半の意味がわからない。そして’undefined’になっている対象がどれなのかわからない・・・。

safari-extension://be.grincheux.validator-RQZY68H5RH/b028fd54/Validator.js

コレは何。ここは何処。私は誰。そんな状態。

そして考えた。これはsafariに組み込んだ機能拡張に問題があるのではないかと(safari-extensionの部分)。そしてもういっこ。最後のValidator.jsの部分。どうもこれはsafariの機能拡張に組み込んだValidatorに問題がありそうな予感。

ということで、この機能拡張を無効にしてみた。結果としてエラーが出なくなった。疲れた。

MySQLでrootのパスワードを設定

2012/05/28 | MySQL

何回やっても忘れるのでメモ。

SET PASSWORD FOR root@localhost=PASSWORD(‘hoge‘);

ほんっと、覚えられない。

CloudCore VPSを試用する

2012/05/27 | VPS

最近ますますレンタルサーバの価格が安くなっているように感じる。さくらのVPSも料金プランを一新し、メモリやディスクの容量が倍増以上になっている。

さくらのVPSは現状3台借りていて、2台は停止させることが難しいのでそのまま放置状態。1台は別サービスへの移転を検討中。あとSaasesは最近こそトラブル発生の連絡は来ないが、2012年春先までは毎月トラブルがあったのでこれも移転を検討中。ただしこちらは、現在は比較的安定しているようでようやく枯れてきた感があり、このまま使うかもしれない。

あと別サービスの立ち上げを検討するということで、もう1台借りるため各社VPSを検討してみた。もちろん安いに越したことはないが、散々な結果だったServersMan@VPSとかはもはや論外。もちろん他の安価なVPSも使用経験があるが基本的には論外。ということで、今回はKVM仮想化を前提としてサービスを探してみた。結果として、お名前.comのVPSとKDDI(CPI)のCloudCore VPSが候補に上がった。



今回は後者、CloudCoreVPSを試用することにした。CPIでは随分以前からVPSを提供しているが、頻繁なサービスリニューアルを繰り返して現在に至っている(他社のVPSからシェアを奪えなかったからじゃないかと思う)。KVMのサービスの提供を始めたのは最近で、かつ今月最安価格帯のサーバの料金を値下げして現状に至っている。CPU物理1Core、メモリ2GB、ディスク100GBで試用する分にも、現状想定する当面の利用用途にも何の不足もない。

前者のお名前.comのVPSもスペック十分で、かつ追加IPアドレスのサービスを提供しているので、こちらにしようかと迷ったが、GMOがあまり好きではないので結局CPIを試すことにした(次はお名前.comを借りてみようと思っている)。

CloudCore VPS

使用感は後日レポートすることにする。

console.logで生じるIE9の問題

2012/05/23 | JavaScript/Ajax

IEでは昔はconsole.logの機能が使えず、JavaScriptのデバッグは大変だった。しかしIE8あたりからはconsole.logも実装され、随分使い勝手がよくなったらしい(といっても最終的な確認程度にしか使わないのだけれど)。しかし、それでも問題が生じた。

グラフ描画ライブラリjqPlotはjQueryプラグインとして使うことができる高機能なグラフ描画ライブラリだ。そしてIEでも使用可能。そういう情報を得たのでとあるクライアントの案件で試用してみた。現在はMac環境で普段IEに接することがないのだが、クライアント先でデモをしていてびっくり!。IEでグラフ表示できてないじゃん!。

その場は「あー、IE対応してなかったかも・・・とりあえず他のライブラリ探してみますねー」とその場は別のブラウザで確認していただいた。解せない、どうも解せない。再度調べたがやっぱりjqPlotはIE9では動くことになっている。しかももうちょい古いバージョンでもOKとなっている。なぜだー。

気を取り直して、Windowsを起動。ひょっとしてうちのPCだと大丈夫だったりして、と思ったので試してみたけどやっぱり表示されない。ショック大。その時思ったのは「あ、ひょっとして配列の最後の要素の後ろにもカンマつけちゃっててIEでエラーになったんじゃ・・・」。で、F12でコンソールを起動してみた。そしたらびっくり。ちゃんと表示された!。

色々試してわかったことは、IEを起動して一度でもコンソールを起動すれば、以降はちゃんとグラフが表示される(仮にコンソールを閉じたとしても)。しかしIE起動後一度もコンソールを開かないままにグラフを表示させようとするとやっぱりダメ。そしてその場合は他のJavaScriptも動いていないことがわかった。

原因は、JavaScript内部でデバッグ用に残っていたconsole.log()関数だった。この関数を残しておくとIEでは基本的に(コンソールログを開かない限り)エラーになる模様。印象としては「console.logしてるのにコンソールが開いていないから詰まっちゃった」みたいな感じだろうか。何はともあれ、console.log()の部分を削除してIE9でも正常に動作することを確認できた。

ちょっと安心、ちょっとショック。納品の際はconsole.logをうっかり残してしまわないよう注意しなくては・・・。

 


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net