今まで面倒で放置していたのだが、Movable Type を 5.0 から 5.02 にアップグレードしてみた。
Movable Type 5.0 から 5.0x へのアップグレード
http://www.movabletype.jp/documentation/mt5/upgrade/mt5.html
今まで面倒で放置していたのだが、Movable Type を 5.0 から 5.02 にアップグレードしてみた。
Movable Type 5.0 から 5.0x へのアップグレード
http://www.movabletype.jp/documentation/mt5/upgrade/mt5.html
「【Perl】文字化けしないメールの送り方」を書いていて気づいたのだが、Movable Type では記事中に BMP(基本多言語面)外の文字が使えない。といってもこれは MT 自体の責任ではなく、MySQL の現行リリース 5.1 では BMP 外の文字をサポートしないためだ。
The
ucs2
andutf8
character sets do not support supplementary characters that lie outside the BMP.
ucs2
とutf8
というキャラクターセットは BMP 外にある追補された文字をサポートしません。
現在開発中の MySQL 5.5 ではこれが改善されて、BMP 外の文字を扱えるキャラクターセット utf8mb4
、utf16
、utf32
が追加された。
漢(オトコ)のコンピュータ道: MySQLコミュニティ騒然!MySQL 5.5.4が与えるインパクト。
http://nippondanji.blogspot.com/2010/04/mysqlmysql-554.html
故あって Movable Type で使っている MySQL のバージョンを 5.1 → 5.5 にアップグレードしてみた。
MySQL :: Download MySQL Community Server
http://dev.mysql.com/downloads/mysql/5.5.html
上記サイトより該当するプラットフォームのものをダウンロードする。今回はミラーサイトから直接ダウンロードした。
$ wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.3-m3-osx10.6-x86_64.dmg
新しくインストールするたびに調べてるので、覚え書きとしておいておく。
ユーザ権限の設定 | MySQL講座 [Smart]
http://www.rfs.jp/server/mysql/02/02.html
インストール直後は
$ /usr/bin/mysqladmin -u root password 'new-password'
とやって、root
にパスワードを設定する。更に、localhost
以外のホストからもアクセス可能にする(ハイライトしている部分が入力すべきコマンド)。
$ mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'パスワード' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
後は、MySQL AdministratorでGUIを使って一般ユーザーを作れば楽ちん。
MySQL :: MySQL GUI Tools Bundle: Archived Downloads
http://dev.mysql.com/downloads/gui-tools/5.0.html
備忘録。
UPDATE users SET password = MD5('mypass') WHERE id = 15;
idが15であるユーザーのパスワードに’mypass’をMD5で符号化して保存する。
みたいなSQL文をDBIx::Class(というか、SQL::Abstract)で表現するにはどうするか。この場合はこう書く。
$schema->resultset( "Users" ) ->update( { password => \"MD5('mypass')", id => 15, } );
なんてことはない。文字列のリファレンスを値として与えるだけだ。更に応用として次のようなSQLだと、
SELECT CONCAT( 'ID', LPAD( id, 6, '0' ) ) AS member_id FROM users;
usersテーブルから
id
を取り出し、頭に'ID'
を付けて6桁0埋めで取り出す。(id = 15
なら'ID000015'
となる)
こうなる。
my $it = $schema->resultset( "Users" ) ->search( undef, { "+select" => [ \"CONCAT( 'ID', LPAD( id, 6, '0' ) )" ], "+as" => [ "member_id" ], } ); say $it->first->get_column( "member_id" ); # 「ID000015」などと表示される