You are here

What are the differences between MySQL Community and MySQL Enterprise Server 5.7

The MySQL Server itself

The differences between the MySQL Community Server and the MySQL Enterprise Server 5.7 are as follows as claimed by Oracle:

  • The license of the MySQL Server itself.
  • Only MySQL Enterprise Edition has the Enterprise plugins (Thread Pool, PAM, Audit, etc.)
  • Certifications and Indemnification support for the MySQL Enterprise Server.
  • The MySQL Community Server statically links against yaSSL and readline vs MySQL Enterprise Server against OpenSSL and libedit. This restriction seems to be lifted in MySQL 8.0.

The license of the MySQL Server

The MySQL Community Server is licensed under the GNU General Public License version 2 whereas the MySQL Enterprise Server is under an Oracle proprietary license as you can see from the following diffs of 2 random files:

shell> diff mysql-5.7.16-linux-glibc2.5-x86_64/share/charsets/latin1.xml mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share/charsets/latin1.xml
6,7c6,7
<  Copyright (c) 2003, 2005 MySQL AB
<    Use is subject to license terms
---
>    Copyright (c) 2003, 2005 MySQL AB
>    Use is subject to license terms.
9,20c9,20
<   This program is free software; you can redistribute it and/or modify
<   it under the terms of the GNU General Public License as published by
<   the Free Software Foundation; version 2 of the License.
< 
<   This program is distributed in the hope that it will be useful,
<   but WITHOUT ANY WARRANTY; without even the implied warranty of
<   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
<   GNU General Public License for more details.
< 
<   You should have received a copy of the GNU General Public License
<   along with this program; if not, write to the Free Software
<   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
---
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>    The lines above are intentionally left blank

This information can also be found in the following files:

mysql-5.7.16-linux-glibc2.5-x86_64/COPYING

                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

...


mysql-5.7.16-linux-glibc2.5-x86_64/README

MySQL Server 5.7

This is a release of MySQL, a dual-license SQL database server.
For the avoidance of doubt, this particular copy of the software
is released under the version 2 of the GNU General Public License.
MySQL is brought to you by Oracle.

...


mysql-advanced-5.7.16-linux-glibc2.5-x86_64/LICENSE.mysql

MySQL Server

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license
agreement containing restrictions on use and disclosure and are protected by
intellectual property laws. Except as expressly permitted in your license
agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish,
or display any part, in any form, or by any means. Reverse engineering,
disassembly, or decompilation of this software, unless required by law for
interoperability, is prohibited.

...


mysql-advanced-5.7.16-linux-glibc2.5-x86_64/README

MySQL Server 5.x

This is a release of MySQL, a dual-license SQL database server.
For the avoidance of doubt, this particular copy of the software
is released under a commercial license and the GNU General Public
License does not apply. MySQL is brought to you by Oracle.

...

Enterprise plugins of the MySQL Enterprise Server

Oracle/MySQL follows the open core business model with the MySQL Server. This means: The MySQL Community Server is the same as the MySQL Enterprise Server but the MySQL Enterprise Server has some additional modules and programs compared to the MySQL Community Server:

  • MySQL Enterprise Backup
  • MySQL Enterprise Monitor
  • MySQL Enterprise Security
  • MySQL Enterprise Audit

See also: MySQL Enterprise Edition.

If we check this in the packages we find the following additional plugins in the MySQL Enterprise Server:

shell> ls -la mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin:
-rwxr-xr-x 1 mysql mysql  3556085 Sep 28 19:35 audit_log.so
-rwxr-xr-x 1 mysql mysql    73855 Sep 28 19:35 authentication_pam.so
-rwxr-xr-x 1 mysql mysql  1595720 Sep 28 19:35 firewall.so
-rwxr-xr-x 1 mysql mysql  3748543 Sep 28 19:35 keyring_okv.so
-rwxr-xr-x 1 mysql mysql  2283844 Sep 28 19:35 openssl_udf.so
-rwxr-xr-x 1 mysql mysql   567032 Sep 28 19:34 thread_pool.so

MySQL Enterprise Server Certification and Indemnification support

This is legal stuff. I only care about technical problems... If you have Open Source legal questions please get in contact with us and we will direct you to lawyers which are specialised in the Open Source field.

Different libraries

The MySQL Community Server statically links against yaSSL and readline vs MySQL Enterprise Server against OpenSSL and libedit.

This is on one side a legal problem GPL vs BSD license. On the other side it is a political problem. Unfortunately the OpenSSL used in the MySQL Enterprise Server is actually a bit more feature reach than yaSSL.

We can also see the differences between the different SSL libraries when we search for the symbols:

shell> grep -ic yassl *.mysqld
community.mysqld:1118
enterprise.mysqld:0

shell> grep -ic openssl *.mysqld
community.mysqld:3
enterprise.mysqld:38

shell]> grep -i openssl community.mysql
yaOpenSSL_add_all_algorithms
_ZL16Sys_have_openssl
_ZN8TaoCrypt18RSA_Public_Decoder17ReadHeaderOpenSSLEv

Other technical comparisons

Beside of the described findings above I am a very curious child...

It seems like we can find here some build info:

shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN    
-rw-r--r-- 1 mysql mysql 5672 Sep 28 20:14 mysql-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN
-rw-r--r-- 1 mysql mysql 5969 Sep 28 19:45 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN

shell> diff mysql-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs/INFO_BIN    
10,13c10,13
< C_FLAGS =  -fPIC -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -I/export/home/somepath/release/include -I/export/home/somepath/mysql-5.7.16/extra/rapidjson/include -I/export/home/somepath/release/libbinlogevents/include -I/export/home/somepath/mysql-5.7.16/libbinlogevents/export -I/export/home/somepath/mysql-5.7.16/include -I/export/home/somepath/mysql-5.7.16/sql/conn_handler -I/export/home/somepath/mysql-5.7.16/libbinlogevents/include -I/export/home/somepath/mysql-5.7.16/sql -I/export/home/somepath/mysql-5.7.16/sql/auth -I/export/home/somepath/mysql-5.7.16/regex -I/export/home/somepath/mysql-5.7.16/zlib -I/export/home/somepath/mysql-5.7.16/extra/yassl/include -I/export/home/somepath/mysql-5.7.16/extra/yassl/taocrypt/include -I/export/home/somepath/release/sql -I/export/home/somepath/mysql-5.7.16/extra/lz4    -DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED
< C_DEFINES = -DHAVE_CONFIG_H -DHAVE_LIBEVENT1 -DHAVE_REPLICATION -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
< CXX_FLAGS =  -fPIC -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -I/export/home/somepath/release/include -I/export/home/somepath/mysql-5.7.16/extra/rapidjson/include -I/export/home/somepath/release/libbinlogevents/include -I/export/home/somepath/mysql-5.7.16/libbinlogevents/export -I/export/home/somepath/mysql-5.7.16/include -I/export/home/somepath/mysql-5.7.16/sql/conn_handler -I/export/home/somepath/mysql-5.7.16/libbinlogevents/include -I/export/home/somepath/mysql-5.7.16/sql -I/export/home/somepath/mysql-5.7.16/sql/auth -I/export/home/somepath/mysql-5.7.16/regex -I/export/home/somepath/mysql-5.7.16/zlib -I/export/home/somepath/mysql-5.7.16/extra/yassl/include -I/export/home/somepath/mysql-5.7.16/extra/yassl/taocrypt/include -I/export/home/somepath/release/sql -I/export/home/somepath/mysql-5.7.16/extra/lz4    -DHAVE_YASSL -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED
< CXX_DEFINES = -DHAVE_CONFIG_H -DHAVE_LIBEVENT1 -DHAVE_REPLICATION -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
---
> C_FLAGS =  -fPIC -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -I/export/home/somepath/release/include -I/export/home/somepath/mysqlcom-pro-5.7.16/extra/rapidjson/include -I/export/home/somepath/release/libbinlogevents/include -I/export/home/somepath/mysqlcom-pro-5.7.16/libbinlogevents/export -I/export/home/somepath/mysqlcom-pro-5.7.16/include -I/export/home/somepath/mysqlcom-pro-5.7.16/sql/conn_handler -I/export/home/somepath/mysqlcom-pro-5.7.16/libbinlogevents/include -I/export/home/somepath/mysqlcom-pro-5.7.16/sql -I/export/home/somepath/mysqlcom-pro-5.7.16/sql/auth -I/export/home/somepath/mysqlcom-pro-5.7.16/regex -I/export/home/somepath/mysqlcom-pro-5.7.16/zlib -I/export/home/somepath/dep4/include -I/export/home/somepath/release/sql -I/export/home/somepath/mysqlcom-pro-5.7.16/extra/lz4   
> C_DEFINES = -DHAVE_CONFIG_H -DHAVE_LIBEVENT1 -DHAVE_OPENSSL -DHAVE_REPLICATION -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
> CXX_FLAGS =  -fPIC -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -I/export/home/somepath/release/include -I/export/home/somepath/mysqlcom-pro-5.7.16/extra/rapidjson/include -I/export/home/somepath/release/libbinlogevents/include -I/export/home/somepath/mysqlcom-pro-5.7.16/libbinlogevents/export -I/export/home/somepath/mysqlcom-pro-5.7.16/include -I/export/home/somepath/mysqlcom-pro-5.7.16/sql/conn_handler -I/export/home/somepath/mysqlcom-pro-5.7.16/libbinlogevents/include -I/export/home/somepath/mysqlcom-pro-5.7.16/sql -I/export/home/somepath/mysqlcom-pro-5.7.16/sql/auth -I/export/home/somepath/mysqlcom-pro-5.7.16/regex -I/export/home/somepath/mysqlcom-pro-5.7.16/zlib -I/export/home/somepath/dep4/include -I/export/home/somepath/release/sql -I/export/home/somepath/mysqlcom-pro-5.7.16/extra/lz4   
> CXX_DEFINES = -DHAVE_CONFIG_H -DHAVE_LIBEVENT1 -DHAVE_OPENSSL -DHAVE_REPLICATION -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
23a24
> CRYPTO_LIBRARY:FILEPATH=/export/home/somepath/dep4/lib/libcrypto.a
34c35
< FEATURE_SET:STRING=community
---
> FEATURE_SET:STRING=xlarge
44a46,48
> OPENSSL_INCLUDE_DIR:PATH=/export/home/somepath/dep4/include
> OPENSSL_LIBRARY:FILEPATH=/export/home/somepath/dep4/lib/libssl.a
> OPENSSL_ROOT_DIR:PATH=/export/home/somepath/dep4
73c77,78
< WITH_SSL:STRING=bundled
---
> WITH_SSL:STRING=/export/home/somepath/dep4
> WITH_SSL_PATH:PATH=/export/home/somepath/dep4

The size of the contents is more or less the same (22 Mbyte difference):

shell> du -ksc mysql*5.7.16-linux*/*

1355480 mysql-5.7.16-linux-glibc2.5-x86_64/bin
20      mysql-5.7.16-linux-glibc2.5-x86_64/COPYING
20      mysql-5.7.16-linux-glibc2.5-x86_64/docs
1220    mysql-5.7.16-linux-glibc2.5-x86_64/include
1217880 mysql-5.7.16-linux-glibc2.5-x86_64/lib
836     mysql-5.7.16-linux-glibc2.5-x86_64/man
4       mysql-5.7.16-linux-glibc2.5-x86_64/README
4144    mysql-5.7.16-linux-glibc2.5-x86_64/share
32      mysql-5.7.16-linux-glibc2.5-x86_64/support-files
2579636 mysql-5.7.16-linux-glibc2.5-x86_64

1345864 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin
4       mysql-advanced-5.7.16-linux-glibc2.5-x86_64/LICENSE.mysql
15664   mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs
1188    mysql-advanced-5.7.16-linux-glibc2.5-x86_64/include
1233168 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib
988     mysql-advanced-5.7.16-linux-glibc2.5-x86_64/man
4       mysql-advanced-5.7.16-linux-glibc2.5-x86_64/README
4144    mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share
32      mysql-advanced-5.7.16-linux-glibc2.5-x86_64/support-files
2601060 mysql-advanced-5.7.16-linux-glibc2.5-x86_64

The biggest difference we see in the docs folder where the mysql.info file is located (left over from clean-up?):

shell> ll mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs
-rw-r--r-- 1 mysql mysql     1789 Sep 28 19:06 ChangeLog
-rw-r--r-- 1 mysql mysql     5969 Sep 28 19:45 INFO_BIN
-rw-r--r-- 1 mysql mysql      185 Sep 28 19:34 INFO_SRC
-rw-r--r-- 1 mysql mysql 16017476 Sep 28 19:06 mysql.info

If we want to see the different number of files:

for i in $(find mysql*5.7.16-linux* -maxdepth 1 -type d) ; do 
  echo -n $i": " ; 
  ( find $i -type f | wc -l ) ; 
done

mysql-5.7.16-linux-glibc2.5-x86_64/support-files: 5
mysql-5.7.16-linux-glibc2.5-x86_64/share: 62
mysql-5.7.16-linux-glibc2.5-x86_64/man: 41
mysql-5.7.16-linux-glibc2.5-x86_64/bin: 38
mysql-5.7.16-linux-glibc2.5-x86_64/lib: 116
mysql-5.7.16-linux-glibc2.5-x86_64/docs: 3
mysql-5.7.16-linux-glibc2.5-x86_64/include: 107
mysql-5.7.16-linux-glibc2.5-x86_64: 374

mysql-advanced-5.7.16-linux-glibc2.5-x86_64/support-files: 5
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share: 66
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/man: 41
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin: 38
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib: 128
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs: 4
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/include: 107
mysql-advanced-5.7.16-linux-glibc2.5-x86_64: 391

Those are the important differences:

-rw-r--r-- 1 mysql mysql     1046 Sep 28 19:02 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share/audit_log_filter_linux_install.sql
-rw-r--r-- 1 mysql mysql     1052 Sep 28 19:02 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share/audit_log_filter_win_install.sql
-rw-r--r-- 1 mysql mysql      239 Sep 28 19:33 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share/uninstall_rewriter.sql
-rw-r--r-- 1 mysql mysql     2207 Sep 28 19:02 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/share/win_install_firewall.sql

-rw-r--r-- 1 mysql mysql 16017476 Sep 28 19:06 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/docs/mysql.info

-rwxr-xr-x 1 mysql mysql  3556085 Sep 28 19:35 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/audit_log.so
-rwxr-xr-x 1 mysql mysql    73855 Sep 28 19:35 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/authentication_pam.so
-rwxr-xr-x 1 mysql mysql  1595720 Sep 28 19:35 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/firewall.so
-rwxr-xr-x 1 mysql mysql  3748543 Sep 28 19:35 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/keyring_okv.so
-rwxr-xr-x 1 mysql mysql  2283844 Sep 28 19:35 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/openssl_udf.so
-rwxr-xr-x 1 mysql mysql   567032 Sep 28 19:34 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/lib/plugin/thread_pool.so

So basically all MySQL Enterprise Server feature files.

The most important MySQL binaries

Let us have a look at the most important MySQL binaries:
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqld mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqld
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db
shell> ll mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade

-rwxr-xr-x 1 mysql mysql  10884339 Sep 28 20:04 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql
-rwxr-xr-x 1 mysql mysql   9815101 Sep 28 19:38 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql
-rwxr-xr-x 1 mysql mysql  11780342 Sep 28 20:06 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog
-rwxr-xr-x 1 mysql mysql  10711774 Sep 28 19:39 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog
-rwxr-xr-x 1 mysql mysql 253303409 Sep 28 20:11 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqld
-rwxr-xr-x 1 mysql mysql 253876847 Sep 28 19:42 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqld
-rwxr-xr-x 1 mysql mysql   9989115 Sep 28 20:06 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump
-rwxr-xr-x 1 mysql mysql   8921087 Sep 28 19:39 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump
-rwxr-xr-x 1 mysql mysql  10711017 Sep 28 20:04 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db
-rwxr-xr-x 1 mysql mysql   8883445 Sep 28 19:38 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db
-rwxr-xr-x 1 mysql mysql  13025173 Sep 28 20:07 mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade
-rwxr-xr-x 1 mysql mysql  11961246 Sep 28 19:40 mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade

Here you can see some differences I cannot explain. Possibly they come from the use of the different SSL and libedit/readline libraries?

The files are basically of the same type/style:

shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql
shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog
shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqld mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqld
shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump
shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db
shell> file mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade

mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqld:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqld: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade:          ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

When we look into the symbol tables of those 6 binaries we can see some differences which IMHO are mostly caused because of the 2 different set of libraries:

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql | cut -b20- >community.mysql
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql | cut -b20- >enterprise.mysql
diff community.mysql enterprise.mysql | less

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog | cut -b20- >community.mysqlbinlog
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqlbinlog | cut -b20- >enterprise.mysqlbinlog
diff community.mysqlbinlog enterprise.mysqlbinlog | less

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqld | cut -b20- >community.mysqld
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqld | cut -b20- >enterprise.mysqld
diff community.mysqld enterprise.mysqld | less

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump | cut -b20- >community.mysqldump
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysqldump | cut -b20- >enterprise.mysqldump
diff community.mysqldump enterprise.mysqldump | less

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db | cut -b20- >community.mysql_install_db
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_install_db | cut -b20- >enterprise.mysql_install_db
diff community.mysql_install_db enterprise.mysql_install_db | less

nm mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade | cut -b20- >community.mysql_upgrade
nm mysql-advanced-5.7.16-linux-glibc2.5-x86_64/bin/mysql_upgrade | cut -b20- >enterprise.mysql_upgrade
diff community.mysql_upgrade enterprise.mysql_upgrade | less

Here are the files for your own research: mysql_community_and_enterprise_symbols.tar.gz

Some more details:

shell> grep zlib community.mysql enterprise.mysql
community.mysql:zlibCompileFlags
community.mysql:zlibVersion
enterprise.mysql:COMP_zlib
enterprise.mysql:COMP_zlib_cleanup
enterprise.mysql:zlibCompileFlags
enterprise.mysql:zlib_method_nozlib
enterprise.mysql:zlibVersion

shell> diff community.mysqld enterprise.mysqld  | grep -i partit
no differences

shell> diff community.mysqld enterprise.mysqld  | grep -i err_                 
< err_helper
> ERR_add_error_data
> ERR_add_error_vdata
> ERR_clear_error
> err_defaults
> ERR_error_string
> ERR_error_string_n
> err_fns
> ERR_free_strings
> ERR_func_error_string
> ERR_get_error
> ERR_get_error_line
> ERR_get_error_line_data
> ERR_get_err_state_table
> ERR_get_implementation
> ERR_get_next_error_library
> ERR_get_state
> ERR_get_string_table
> ERR_lib_error_string
> ERR_load_ASN1_strings
> ERR_load_BIO_strings
> ERR_load_BN_strings
> ERR_load_BUF_strings
> ERR_load_CMS_strings
> ERR_load_COMP_strings
> ERR_load_CONF_strings
> ERR_load_crypto_strings
> ERR_load_CRYPTO_strings
> ERR_load_DH_strings
> ERR_load_DSA_strings
> ERR_load_DSO_strings
> ERR_load_ECDH_strings
> ERR_load_ECDSA_strings
> ERR_load_EC_strings
> ERR_load_ENGINE_strings
> ERR_load_ERR_strings
> ERR_load_EVP_strings
> ERR_load_OBJ_strings
> ERR_load_OCSP_strings
> ERR_load_PEM_strings
> ERR_load_PKCS12_strings
> ERR_load_PKCS7_strings
> ERR_load_RAND_strings
> ERR_load_RSA_strings
> ERR_load_SSL_strings
> ERR_load_strings
> ERR_load_TS_strings
> ERR_load_UI_strings
> ERR_load_X509_strings
> ERR_load_X509V3_strings
> ERR_peek_error
> ERR_peek_error_line
> ERR_peek_error_line_data
> ERR_peek_last_error
> ERR_peek_last_error_line
> ERR_peek_last_error_line_data
> ERR_pop_to_mark
> ERR_print_errors
> ERR_print_errors_cb
> ERR_print_errors_fp
> ERR_put_error
> ERR_reason_error_string
> ERR_release_err_state_table
> ERR_remove_state
> ERR_remove_thread_state
> ERR_set_error_data
> ERR_set_implementation
> ERR_set_mark
> err_state_LHASH_COMP
> err_state_LHASH_HASH
> ERR_str_functs
> err_string_data_LHASH_COMP
> err_string_data_LHASH_HASH
> ERR_str_libraries
> ERR_str_reasons
> ERR_unload_strings
> int_err_del
> int_err_del_item
> int_err_get
> int_err_get_item
> int_err_get_next_lib
> int_err_library_number
> int_err_set_item
< yaERR_error_string
< yaERR_error_string_n
< yaERR_free_strings
< yaERR_get_error
< yaERR_get_error_line_data
< yaERR_GET_REASON
< yaERR_peek_error
< yaERR_print_errors_fp
< yaERR_remove_state
< _ZZ18yaERR_error_stringE3msg

MySQL Enterprise Server and MySQL Community Server packages

This is not directly MySQL Server related but it affects operation as well: We found today that the MySQL Enterprise Server RPM package and the MySQL Community Server packages were not prepared the same. The MySQL Enterprise Server for MySQL 5.7.15 package was still using sysV init scripts whereas the MySQL 5.7.15 Community Server package seems to use already SystermD unit files (since MySQL 5.7.6: Managing MySQL Server with systemd). This has change from MySQL 5.7.15 to MySQL 5.7.16 Enterprise Server. So if you sidegrade from MySQL Community to MySQL Enterprise Server you might experience some surprises...

Comments

I was informed that nowadays MySQL Enterprise Server and MySQL Community Server use both EditLine (since MySQL 5.6?).
Shinguzcomment

I found out that we were wrong in this. We have taken RHEL6 MySQL RPM packages instead of RHEL7 packages. This is the reason why the installation was not smooth (but it worked) and why still old sysV init scripts were used.
Shinguzcomment