Ruby on Rails 3 Tips

RailsからMySQLのテーブルを作成するには Railsのマイグレート機能には、カラム属性としてbinaryがあるのですが、これを指定してもMySQL上ではBLOBというカラム属性になります。 構文としては create_table :user_photos do |t|   t.string :name   t.binary :photo_image end もっと大容量のLONGBLOBが欲しい! という時にはbinaryの所にオプションで:limit => 16.megabyte ...

Lift,Scala

Scala + Liftの環境は、最初はH2DBにつながるようになっている。 一般的にサービスを提供する場合、やはりMySQLなどに繋いで使いたい ということで、MySQLに接続する方法 Mavenでプロジェクトを作っている前提で pom.xmlファイルのdependenciesに以下を追加 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</arti ...

MySQL,ubuntu

UbuntuはパッケージでMySQLを入れるとすぐに起動しますが 外部からの接続が出来ないように設定されています。 /etc/mysql/my.cnf このファイルの中に bind-address           = 127.0.0.1 という行があります。 これは、IPが127.0.0.1からの接続しか受け付けないですよ、という設定で 127.0.0.1は自分自身のことなので、そのマシンの中からしかつなぐことが出来ません。 この設定行をコメントアウトすることで、その制限を外すことが出来ます ...

MySQL

MySQLのデフォルトのキャラセットをUTF-8にセットする Linuxの場合 /etcにmy.cnfか、/etc/mysqlにmy.cnfがあるので、それを開く の下に default-character-set=utf8 を追記 の下にも default-character-set=utf8 を追記 2012年09月13日追記 ※MySQL5.5からはで使用するキャラセットの設定はdefault-character-setではなく character-set-serverに変わります。 サー ...

MySQL

MySQLで巨大なSQLを送信したときに 「Got a packet bigger than 'max_allowed_packet' bytes」 というエラーが出る。 これは、MySQLサーバの設定で「max_allowed_packet」があり、ここで指定したサイズよりも大きいパケットを送信したときに出るエラーのようだ。 解決方法としてはmy.cnfののところに max-allowed-packet=8M といった感じで大きいサイズを指定することで解決する

MySQL,SQL

MySQL で ビットマスク を扱う

MySQL,SQL

先ほど、仕事でなぜか違うデータが抽出されるんだけど…という不具合を報告され よくよく調査したら、 code like '2001_1001_202_%' という条件を見つけた。 前任者は、2001_1001_202_100とか、2001_1001_202_の後にコードが付いたデータを抽出したかったのであろうが この条件だと2001_1001_2023というデータもヒットしてしまう。 これは、likeでは「_」は任意の一文字を意味する記号であるからである。 仕方が無いので、検索条件として使うコード ...

MySQL,SQL

MySQLにはmysqldumpというダンプツールがあるが、CSVファイルでデータを出力できると、加工もしやすい。 また、CSV出力時には基本、SQL構文での出力となるため、条件指定も容易になる。 書き方としては SELECT * FROM areas ORDER BY id INTO OUTFILE "/home/user/areas.csv" FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED B ...

MySQL,SQL

MySQLでユーザを削除する手順 権限を削除 REVOKEで、削除したいユーザの権限を削除する REVOKE構文について REVOKE priv_type ...] ON {テーブル名 | * | *.* | データベース名.*} FROM ユーザ名 参考に、guestユーザの権限を削除する実際の構文は REVOKE all on *.* from guest; ユーザを削除 DROP USER guest;