1. 程式人生 > >解決:error: Cannot find libmysqlclient_r under /usr/local/mysql.

解決:error: Cannot find libmysqlclient_r under /usr/local/mysql.

support cif cnblogs 處理程序 undle cat note title led

轉 解決:error: Cannot find libmysqlclient_r under /usr/local/mysql.

配置php的時候出現以下問題解決方案

checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket...no
checking for MySQL UNIX socket location... no
configure: error: Cannot find libmysqlclient_r under/usr/local/mysql. Note that the MySQL client library is not bundledanymore!

其實這跟PHP沒有關系,那是因為在編譯APACHE的時候,使用--with-mpm模塊,所以就必須在編譯MYSQL的時候加上--enable-thread-safe-client.參數
這是PHP5.2的一個改進,在PHP5.2.0之前的版本都不需要MYSQL啟用安全線程。關於--enable-thread-safe-client項的官方介紹如下:如何生成線程式客戶端庫總是線程安全的。最大的問題在於從套接字讀取的net.c中的子程序並不是中斷安全的。或許你可能希望用自己的告警中斷對服務器的長時間讀取,以此來解決問題。如果為SIGPIPE中斷安裝了中斷處理程序,套接字處理功能應是線程安全的。SupeSite/X-為了避免連接中斷時放棄程序,MySQL將在首次調用mysql_server_init()、mysql_init()或mysql_connect()時屏蔽SIGPIPE。如果你打算使用自己的SIGPIPE處理程序,首先應調用mysql_server_init(),然後安裝你的處理程序.


還有第二種解決方法比較方便:編譯之前,先處理一下mysql的庫,默認查找libmysqlclient_r.so,可是mysql默認為libmysqlclient.so,內容完全一樣,做個鏈接即可
# cd /usr/local/mysql/lib/mysql/
# ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so

解決:error: Cannot find libmysqlclient_r under /usr/local/mysql.