0

sam J levy のサイトから次の UDF をインストールしたいと思います

テストサーバー用に wamp を使用して Windows (32 ビット) のインストールを問題なく実行しました。これで、centOs 6.4 を実行する適切なサーバーができました。.soファイルをにコピーしました

usr/lib64/mysql/プラグイン/damlev.so

次に、SQL ステートメントの 1 つを実行して関数を作成しようとします。

CREATE FUNCTION damlev RETURNS INTEGER SONAME 'damlev.so';

そして、次のエラーを取得します

1126 - 共有ライブラリ 'damlev.so' を開けません (errno: 22 /usr/lib64/mysql/plugin/damlev.so: 間違った ELF クラス: ELFCLASS32)

私は何を間違っていますか。サーバーが64bitだからでしょうか?

バウンティの編集開始:

サーバーに関する詳細が必要な場合は、喜んで提供できます。この機能をインストールする必要があります。

4

1 に答える 1

1

Levi's サイトのdamlev.zipファイルにdamlev.so含まれているライブラリを使用しようとしているようですが、そのライブラリは Ubuntu 32 ビット システム用であるため、Centos 64 ビット システムでは動作しません。ソースからコンパイルする必要があります。前提条件として、コンパイラと mysql 開発ライブラリを インストールする必要があります。
g++

yum install gcc-c++ mysql-devel

wgetまた、とがない場合はunzip、次のコマンドでインストールします。

yum install wget unzip

次に、ソース コードをダウンロードして、どこかに解凍します。

cd tmp
mkdir damlev
cd damlev
wget http://samjlevy.com/wp-content/uploads/2011/03/damlev.zip
unzip damlev.zip
cd src

最後に、プラグインをコンパイルしてインストールし、mysql サーバーを再起動します。

g++ -fPIC -I /usr/include/mysql/ -o damlev.so -shared damlev.cpp
cp damlev.so /usr/lib64/mysql/plugin/
service mysql restart

上記のコマンドはすべて「root」として実行する必要があることに注意してください。

于 2013-08-22T20:34:38.627 に答える