cl-sqlとmysql

commonlispでデータベースに接続したくなったので、cl-sqlを試す。
mysqlもclsqlも以前に入れていたけど放置してた。

まずmysqlのパスワードを忘れているという問題が・・・。
次にclsqlでmysqlにつなごうとすると何やらエラーがでる。
なんだかlibmysqlclient.soがないっていってるみたい。
mysqlclientは入ってるみたいなんだけど・・・。
mysqlclientを入れ直してみたけどダメ。

find / name=libmysqlclient|grep libmysqlclient

してさがしてみると確かにlibmysqlclient.soはない。
libmysqlclient.so.15.0.0はあるみたいなので、

ln -s libmysqlclient.so.15.0.0 libmysqlclient.so

シンボリックリンクを張ってみた。
これで動くみたい。まぁいいか。(いいのかなぁ)
動かすとこんな感じ。

; SLIME 2006-11-26
CL-USER> (require :asdf)
NIL
CL-USER> (asdf:oos 'asdf:load-op :clsql)
NIL
CL-USER> (clsql:connect '("localhost" "test_schema" "root" "p") :database-type :mysql)
#
CL-USER> (clsql:insert-records :into "tb0"
       :attributes '(id name comment)
       :values '(1 "あいう" "あいう"))

CL-USER> (clsql:query "select * from tb0")
((1 "あいう" "あいう"))
("id" "name" "comment")
CL-USER> 

ついでにmysqlの使いかたも書いとく。忘れそうだから。

$ mysql -u root -h localhost -p

こんな感じでつないで

mysql> use test_schema

スキーマ選んで

Database changed
mysql> select * from tb0;
+----+-----------+-----------+
| id | name      | comment   |
+----+-----------+-----------+
|  1 | あいう | あいう | 
+----+-----------+-----------+
1 row in set (0.00 sec)

select したりすると。

よくわからないのが日本語の扱い。
あーそれからasdfも何が何やらよく分かってないんだよな。
誰かいい解説書いてくれてないかなぁ。