如何编译mariadb来获取libmysqlclient.so? (缺少/ usr / local / mysql / lib中的libmysqlclient.so)

时间:2017-07-04 09:41:47

标签: c++ mysql compilation cmake mariadb

我想通过进一步使用php7.1 / apache2.4.25将我们的数据库从mysql(社区版)移动到mariadb ...所以我必须在新的生产环境中编译mariadb。我用以下选项编译它:

cmake -DCMAKE_CXX_FLAGS:STRING="-std=c++11" -DCONC_WITH_CURL=ON -DCONC_WITH_EXTERNAL_ZLIB=ON -DDISABLE_SHARED=OFF -DCONC_WITH_MYSQLCOMPAT:BOOL=ON -DPLUGIN_CLIENT_ED25519:STRING=DYNAMIC .
make all && make install

mysql社区版本在/ usr / local / mysql / lib中有一个libmysqlclient.so。如果我用上面给出的选项编译它我只在/ usr / local / mysql / lib(MariaDB 10.2.6)中找到这些文件:

# ls -l /usr/local/mysql/lib/
total 3572
-rw-r--r-- 1 root root 2305518 Jul  4 08:14 libmariadbclient.a
lrwxrwxrwx 1 root root      15 Jul  4 08:31 libmariadb.so -> libmariadb.so.3
-rwxr-xr-x 1 root root 1297664 Jul  4 08:14 libmariadb.so.3
-rw-r--r-- 1 root root   48406 Jul  4 08:14 libmysqlservices.a
drwxr-xr-x 2 root root    4096 Jul  4 08:31 plugin

我如何获得libmysqlclient.so?还没有任何libmariadbclient.so只是libmariadbclient.a ...

感谢您提供进一步的提示!

1 个答案:

答案 0 :(得分:0)

好的,现在我找到了解决方案。 我刚刚给libmariadb.so做了一个符号链接,它现在看起来如下:

ls -l /usr/local/mysql/lib/
total 3572
-rw-r--r-- 1 root root 2305518 Jul  4 16:21 libmariadbclient.a
lrwxrwxrwx 1 root root      15 Jul  4 16:39 libmariadb.so -> libmariadb.so.3
-rwxr-xr-x 1 root root 1297664 Jul  4 16:21 libmariadb.so.3
lrwxrwxrwx 1 root root      15 Jul  4 16:40 libmysqlclient_r.so -> libmariadb.so.3
lrwxrwxrwx 1 root root      15 Jul  4 16:40 libmysqlclient.so -> libmariadb.so.3
-rw-r--r-- 1 root root   48406 Jul  4 16:21 libmysqlservices.a
drwxr-xr-x 2 root root    4096 Jul  4 16:39 plugin

在这种情况下,PHP 7最终会找到mysql库......