首頁 資料庫 mysql教程 error: ‘SSL_OP_NO_COMPRESSION’ undeclared (first u

error: ‘SSL_OP_NO_COMPRESSION’ undeclared (first u

Jun 07, 2016 pm 04:39 PM
error ssl

今天帮一个朋友的一台机器编译lamp环境,编译MYSQL的时候报如下错误: 63% Built target qa_auth_interface Scanning dependencies of target qa_auth_server 64% Building C object plugin/auth/CMakeFiles/qa_auth_server.dir/qa_auth_server.c.o Linking

今天帮一个朋友的一台机器编译lamp环境,编译MYSQL的时候报如下错误:


[ 63%] Built target qa_auth_interface
Scanning dependencies of target qa_auth_server
[ 64%] Building C object plugin/auth/CMakeFiles/qa_auth_server.dir/qa_auth_server.c.o
Linking C shared module qa_auth_server.so
[ 64%] Built target qa_auth_server
Scanning dependencies of target vio
[ 64%] Building C object vio/CMakeFiles/vio.dir/vio.c.o
[ 64%] Building C object vio/CMakeFiles/vio.dir/viosocket.c.o
[ 64%] Building C object vio/CMakeFiles/vio.dir/viossl.c.o
/home/centos/mysql-5.5.34/vio/viossl.c: In function ‘ssl_do’:
/home/centos/mysql-5.5.34/vio/viossl.c:175: error: ‘SSL_OP_NO_COMPRESSION’ undeclared (first use in this function)
/home/centos/mysql-5.5.34/vio/viossl.c:175: error: (Each undeclared identifier is reported only once
/home/centos/mysql-5.5.34/vio/viossl.c:175: error: for each function it appears in.)
make[2]: *** [vio/CMakeFiles/vio.dir/viossl.c.o] Error 1
make[1]: *** [vio/CMakeFiles/vio.dir/all] Error 2
make: *** [all] Error 2


google搜索了一下,有许多朋友遇到过了,有些朋友建议使用低版本的MYSQL进行编译,或者使用centos6.X的操作系统,centos6的操作系统编译MYSQL的时候确实没有遇到过这个个错误。

解决办法:
这其实是MYSQL的一个bug,官方已经发布了补丁,补丁打好之后再编译就可以过去了,具体页面请查看:http://bugs.mysql.com/bug.php?id=68999

[18 Apr 15:06] Remi Collet
Description:
Can't build with openssl 0.9.8e from RHEL / CentOS / Oracle Linux 5

How to repeat:
cmake -DWITH_SSL=system ...

/builddir/build/BUILD/mysql-5.5.31/vio/viossl.c:175: error: 'SSL_OP_NO_COMPRESSION' undeclared (first use in this function)

Suggested fix:
See trivial attached patch[18 Apr 15:07] Remi Collet
mysql-openssl.patchAttachment: mysql-openssl.patch (text/x-patch), 405 bytes.
PS:patch -p1 [26 Apr 10:49] Umesh Umesh
http://bugs.mysql.com/bug.php?id=69080 marked as duplicate of this one.
[24 May 10:58] Umesh Umesh
Hello Remi,

Thank you for the report.
Verified as described.

// How to repeat

[root@cluster1 mysqlcom-5.5.31]# openssl version
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
[root@cluster1 mysqlcom-5.5.31]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
[root@cluster1 mysqlcom-5.5.31]# uname -a
Linux cluster1 2.6.32-100.26.2.el5 #1 SMP Tue Jan 18 20:11:49 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@cluster1 mysqlcom-5.5.31]# cmake -DCMAKE_INSTALL_PREFIX=/root/server/mysqlcom-5.5.31  -DWITH_SSL=system

[root@cluster1 mysqlcom-5.5.31]# make

..
...

Scanning dependencies of target vio
[ 63%] Building C object vio/CMakeFiles/vio.dir/vio.c.o
[ 63%] Building C object vio/CMakeFiles/vio.dir/viosocket.c.o
[ 63%] Building C object vio/CMakeFiles/vio.dir/viossl.c.o
/root/setup/mysqlcom-5.5.31/vio/viossl.c: In function assl_doa:
/root/setup/mysqlcom-5.5.31/vio/viossl.c:175: error: aSSL_OP_NO_COMPRESSIONa undeclared (first use in this function)
/root/setup/mysqlcom-5.5.31/vio/viossl.c:175: error: (Each undeclared identifier is reported only once
/root/setup/mysqlcom-5.5.31/vio/viossl.c:175: error: for each function it appears in.)
make[2]: *** [vio/CMakeFiles/vio.dir/viossl.c.o] Error 1
make[1]: *** [vio/CMakeFiles/vio.dir/all] Error 2
make: *** [all] Error 2[24 May 11:50] Erlend Dahl
Bug #69080 mysql-5.5.31 not compatible with openssl-1.0.0 and lower

was marked as a duplicate.[8 Jun 0:07] Noel Butler
5.5.32 also suffers same fate, i'm amazed oracle had ignored this and the simple included patch that fixes this.
[13 Jun 10:40] Georgi Kodinov
This openssl version is rather old. openssl recommends that you should consider upgrading to a later one.
Is there any obstacle with you upgrading to a recent version ?
Alternatively you can just download the binaries from http://dev.mysql.com/downloads.
[13 Jun 10:44] Remi Collet
> Is there any obstacle with you upgrading to a recent version ?
Enterprise Linux distribution provides backport for security fix.

I don't think upgrade to a more recent version is even thinkable on RHEL, Oracle Linux or other clones.
[13 Jun 10:57] Georgi Kodinov
It's a bit unfortunate that there's no compile time way to check for the presence of that fix.
Thanks for the explanations. It's a valid bug and needs to be fixed.
[28 Jun 14:39] Georgi Kodinov
I would really love if you can provide a way for us to recognize at compile time that this particular openssl version has been patched to include the fix (so I can safely #ifdef the fix that we did on our side).
Any chance that you would consider adding a define specific to your backport of the fix in this version that we can use ?
E.g. adding something like this :
#define OPENSSL_RHEL_COMPRESSION_FIX 1
to openssl.h would work great.
[29 Jun 14:04] Remi Collet
@Georgi Kodinov sorry, I really don't understand the need.

Feel free to open a request for change on RHEL, but...

Why do you think you need this and don't simply #ifdef SSL_OP_NO_COMPRESSION
[29 Jun 15:33] Hartmut Holzgraefe
I don't understand why this can't be fixed by a simple #ifdef (as in the originally attached patch) either ...
[1 Jul 11:51] Georgi Kodinov
Remi,

IMHO we need to be able to distinguish between an un-patched openssl 0.9.8e (that doesn't contain the fixes that you've backported to it) and your patched variant of the same library.
Otherwise there will not be enough information to determine whether to do the fix for this ssl bug in the mysql code or not.[29 Aug 14:21] Georgi Kodinov
Moving to "need feedback" based on the above question
[30 Sep 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
Tags - mysql , bug , ssl op no compression
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP Fatal error: Call to undefined method PDO::prepare() in的解決方法 PHP Fatal error: Call to undefined method PDO::prepare() in的解決方法 Jun 22, 2023 pm 06:40 PM

PHP作為一種流行的Web開發語言,已經被使用很久了。 PHP中整合的PDO(PHP資料物件)類別是我們在開發Web應用程式過程中與資料庫互動的常用方法。但是,一些PHP開發者經常遇到的問題是,當使用PDO類別與資料庫互動時,他們會收到這樣的錯誤:PHPFatalerror:CalltoundefinedmethodPDO::prep

在Vue應用程式中使用axios時出現「Uncaught (in promise) Error: Request failed with status code 500」怎麼辦? 在Vue應用程式中使用axios時出現「Uncaught (in promise) Error: Request failed with status code 500」怎麼辦? Jun 24, 2023 pm 05:33 PM

在Vue應用程式中使用axios是十分常見的,axios是一種基於Promise的HTTP客戶端,可以用於瀏覽器和Node.js。在開發過程中,有時會出現「Uncaught(inpromise)Error:Requestfailedwithstatuscode500」的錯誤提示,對於開發者來說,這個錯誤提示可能有些難以理解和解決。本文將會探討這

解決C++程式碼中出現的「error: expected initializer before 'datatype'」問題 解決C++程式碼中出現的「error: expected initializer before 'datatype'」問題 Aug 25, 2023 pm 01:24 PM

解決C++程式碼中出現的「error:expectedinitializerbefore'datatype'」問題在C++程式設計中,有時我們在寫程式碼時會遇到一些編譯錯誤,其中一個常見的錯誤是「error:expectedinitializerbefore'datatype'」。這個錯誤通常在變數宣告或函數定義中發生,可能導致程式無法正確編譯或

Java8(291)之後禁用了TLS1.1使JDBC無法用SSL連接SqlServer2008怎麼解決 Java8(291)之後禁用了TLS1.1使JDBC無法用SSL連接SqlServer2008怎麼解決 May 16, 2023 pm 11:55 PM

Java8-291之後,禁用了TLS1.1,使JDBC無法用SSL連接SqlServer2008怎麼辦,以下是解決辦法修改java.security檔案1.找到jre的java.security檔案如果是jre,在{JAVA_HOME}/jre/ lib/security中,例如????C:\ProgramFiles\Java\jre1.8.0_301\lib\security如果是Eclipse綠色免安裝便攜版在安裝資料夾搜尋java.security,例如?????xxx\plugins \org

解決C++程式碼中出現的「error: incomplete type is not allowed」問題 解決C++程式碼中出現的「error: incomplete type is not allowed」問題 Aug 26, 2023 pm 08:54 PM

解決C++程式碼中出現的「error:incompletetypeisnotallowed」問題在C++的程式設計過程中,有時會遇到一些編譯錯誤,其中一個常見的錯誤是「error:incompletetypeisnotallowed」。這個錯誤通常是由於在使用不完整的類型進行操作時引起的。本文將介紹這個錯誤的原因,並提供幾種解決方法。首先,我

如何在HAProxy中實現SSL通過 如何在HAProxy中實現SSL通過 Mar 20, 2024 am 09:30 AM

保持Web伺服器負載平衡是預防停機的關鍵措施之一。使用負載平衡器是一種可靠的方法,其中HAProxy是一個備受推崇的選擇。使用HAProxy,您可以精確設定負載平衡方式,同時支援SSL直通,進而確保客戶端與伺服器之間的通訊安全。首先探討在HAProxy中實現SSL直通的重要性,隨後詳細討論了實施此功能所需的步驟,並提供了一個範例以便更好理解。什麼是SSL通過?為什麼它很重要?作為負載平衡器,HAProxy接受並指派流向您Web伺服器的負載,在已設定的伺服器上進行分發。負載的分配是針對客戶端設備和

PHP Fatal error: Call to undefined function mysqli_connect()的解決方法 PHP Fatal error: Call to undefined function mysqli_connect()的解決方法 Jun 23, 2023 am 09:40 AM

在使用PHP編寫Web應用程式時,經常會使用MySQL資料庫來儲存資料。 PHP提供了一種與MySQL資料庫互動的方法,稱為MySQLi。然而,有時在使用MySQLi時,會遇到一個錯誤訊息,如下所示:PHPFatalerror:Calltoundefinedfunctionmysqli_connect()這個錯誤訊息意味著PHP無法找到my

如何解決PHP Warning: fopen(): failed to open stream: No such file or directory 如何解決PHP Warning: fopen(): failed to open stream: No such file or directory Aug 19, 2023 am 10:44 AM

如何解決PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory在使用PHP開發過程中,我們常常會遇到一些檔案操作的問題,其中之一就是"PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory

See all articles