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 plug-ins (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 OpenSSLand libedit.
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 plug-ins 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 plug-ins 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 yaSSLand readline vs MySQL Enterprise Server against OpenSSLand 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 imporant 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 basicaly 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 side-grade from MySQL Community to MySQL Enterprise Server you might experience some surprises...