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も何が何やらよく分かってないんだよな。
誰かいい解説書いてくれてないかなぁ。