質問

CLSQLを使用してSBCLからMySQLに接続したい。 QuickLISP(QL:QuickLoad 'CLSQL)を使用してCLSQLをロードしました。ただし、(clsql:connect '(...):データベースタイプ:MySQL)を呼び出すとき、それは言った:

外部ライブラリ "libmysqlclient"、 "libmysql"をロードできませんでした。 (検索されたCLSQL-SYS:外部ライブラリ検索パス)。

私はCentosにいて、基本的に私がやりたいことは

  1. MySQLクライアント開発ヘッダをyumでインストールするので、UFFIはそれを見つけることができます(私はしなかった)
  2. インストール後、ローカルMySQLサーバーに接続できるようになります(1が実行された後は、自動的に機能する可能性があります)。

    私は現在使用しています:

    • CENTOS 5.7最終(32ビット)
    • SBCL 1.0.55
    • QuickLISPベータ
    • yumリポジトリ:ベース、エパエル、エクストラ、アップデート

      私はCentosにMySQL開発ヘッダーをインストールする方法について尋ねるだけではありませんでした。また、CLSQLが見つけることができるかどうかわからないため、Sourceからlibmysqlclient / libmySQLを構築しようとしませんでした。私はそうではないと思います。

      私の質問があるとどういうわけか質問が逃したが、豊富なグーグルは結果を生み出しませんでした。誰かがMySQLクライアント開発ヘッダーをCentosにインストールすることができなかった場合、私はそれらを笑い、yum検索を使用するように彼らに言うだろうが、私はそれがオンラインでもそれを見つけることができませんでした。

      私はUbuntu(そしてDebian)の解決策を知っていて、CL-SQLパッケージがあるため、MySQLヘッダーも簡単に見つけることができますが、Centosで必要です。

      事前にありがとうございました。

役に立ちましたか?

解決

どういうわけか、十分な長さを試してみると、完了します。)

これは私が誰かが答えを必要としていてこの質問につまずくならば:

(ql:quickload 'clsql)

;tell clsql where to search for mysql libs
(push #P"/usr/lib/mysql" CLSQL-SYS:*FOREIGN-LIBRARY-SEARCH-PATHS*)

;add mysql libs to clsql library path [apparent from code :]
(clsql:push-library-path "/usr/lib/mysql/")

;directly tell uffi to load mysqlclient shared library
(uffi:load-foreign-library "/usr/lib/mysql/libmysqlclient.so")
.

もちろん、必要に応じてMySQLライブラリのための異なるパスに "/ usr / lib / mysql"を置き換えることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top