summaryrefslogtreecommitdiff
path: root/dev-db/percona-server
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-21 18:00:10 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-21 18:00:10 +0100
commit265dbe5dbc14c199299496c6db8fce3f76647015 (patch)
treeab18b5617d138f6684566b619405090989d55a2c /dev-db/percona-server
parent586819755b4dbfdffdc8a725ab7c0f86095b8489 (diff)
gentoo resync : 21.09.2018
Diffstat (limited to 'dev-db/percona-server')
-rw-r--r--dev-db/percona-server/Manifest9
-rw-r--r--dev-db/percona-server/metadata.xml3
-rw-r--r--dev-db/percona-server/percona-server-5.6.39.83.1.ebuild243
-rw-r--r--dev-db/percona-server/percona-server-5.6.40.84.0.ebuild12
-rw-r--r--dev-db/percona-server/percona-server-5.6.41.84.1.ebuild12
5 files changed, 15 insertions, 264 deletions
diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest
index ef2b8dd49ab3..11a841ca85d9 100644
--- a/dev-db/percona-server/Manifest
+++ b/dev-db/percona-server/Manifest
@@ -1,10 +1,7 @@
AUX my.cnf-5.6 4568 BLAKE2B 633cc45bcc751046ef766dcabd1c8db2cd474f13cde436d41698a810787bc52cc8c11aee79c49ed884f4b01ea26fad11f9ffab08471eb10d6752007fd44d372b SHA512 498826f147ad01615358111511c88f671ff823c400782dbad5f359aff99fa88a7be66e3c3b42fd58a5634f17e12f6a18e1896340f1a5a7acecd75320671c3a10
-DIST mysql-extras-20171121-1518Z.tar.bz2 313539 BLAKE2B c397fdf7ffb3fcbcecda20933e18234062a9500dcf4031e9b17131e2a1f23dca7535ed33ff541fc075eb9995c67a9a8fd7261d7524dd42d8d333543c368b4c15 SHA512 dd0d4a00c0ed710e786d157a73f02c6f555ab7a68e57014d958627096a4245a0b45d22ec860dc5389002d106554e80166661c0b6ddcadff1f737e3fa195badda
DIST mysql-extras-20180628-0201Z.tar.bz2 322141 BLAKE2B fce35cfea4ffa9860908fcdf440cd0d714c402c42ee2afb22cec9e727971c216310c7db561ca1b37deebb2cea5137fe24f19b491ad500949e3170ccec3de0b13 SHA512 71a3800ec091b41e41d25536199149eb714c0bbfc0f6fc478e8e4dcaf4cf87a7e4d49c513da3c9badc0de810d7d78c05ad91dd898e45005b42136346237de42a
-DIST percona-server-5.6.39-83.1.tar.gz 56307662 BLAKE2B 474e497a83e7a8f7bf628b2622a0bfeead0f5003ed87dd4228e85a8b1c75bfdfc40f75604e9ed621f6d143d69bcada29163bf140b765951cf0b23e5660623e52 SHA512 d014bc0ebf8d8f1842b4a79eb0a868e3c9e0e33d3eb3cbf301b5504dcb341e1f2a0d6c2c4003666f59fbf75eb274356ee6b059ff2cddf2b457143ee5e1aba471
DIST percona-server-5.6.40-84.0.tar.gz 52684007 BLAKE2B 11658be2319880f7e8815c7b620b7d460dd7a559316ca96905573b0fa2d7180b084ed425f76f6d850f06862e424b5a8d6ced8356f9075826b77e89e86095eb40 SHA512 b1075933bdf1afb726acd799e834cb45a1d2a15d3f37f313da71f8da03a7b9480d7ccfb4cb6a820fb6ccf58851d8c9473bce975203cd6bc007a2b74b36a1127f
DIST percona-server-5.6.41-84.1.tar.gz 52736448 BLAKE2B 1ec5e17f08274caa3882f829f25bbf74a3b37d2ba208f62376106f0d89e5470f461f7852e365d5da9503d5500702e28f08461e5aa0c5ae6b1a30a0e98dbb426b SHA512 60783154f9ab097083a484c34e584b396eeba4aa53dc8616c467ca9c85cc626be08e3165740703453cc4fb35f3af94ac34260f1e2bb133d60f832661251cbb3c
-EBUILD percona-server-5.6.39.83.1.ebuild 8506 BLAKE2B fe867adcb0963c377b7f06ccba8b4d49fa878390321c5dd77562e27527c9503182cdd853fbcd42c5558d3ff8cb4676ec0e251fc65331bd31419bf92907ba8b2b SHA512 fd146e3f0db22253af87e4c98c34285ff9fd39bb640ab968cd58ee181d8b573c970ec71e7f34aa0999a05e6d4537055f4f588a2434412881431747e5c79c31ea
-EBUILD percona-server-5.6.40.84.0.ebuild 31823 BLAKE2B 4f7f9fd07789c13b8834a8ac80fc95ba0c8ddc6e70c0b6bb4b831bd84981de6b3a32373552dcc3ebfb46638e8878785408e5906567ce5dd10386f7f6fec783d0 SHA512 78a8bee554dc6fd9b3ff22a5696aa341d0687577a4f1b0f9ab5c283ec68488c1a10a1df56a432f9316f5933c4fa4d61f689da39a549b415837ffc79657896966
-EBUILD percona-server-5.6.41.84.1.ebuild 31724 BLAKE2B 6a85999f4cd0fb854c4a5a62bf4be68429f11be858567e26b052d40b1aae3541288769885a7199e2314adb818ca46e3aa8644ac149a198d52ccb3ccc3f5038de SHA512 b11e1bc4e11167e4e3256ec1e59de0bfd8e420967d299ad71ce0b4f10faed47e9f4412cf390fdede1ba9756eed22c1f013e251cd99fea5eb0bc1fc9ec4b75e25
-MISC metadata.xml 1689 BLAKE2B 6dca9970c094409b460efb0a90d7069c76a598d864b057a11ddc0659a6eb11fef2f0a8a4926167cb76601da021b3591818b0be594c1095bab14553bf7e243dbe SHA512 34406d84c5198256694ea7c442ff40d93650359dfafb63eec59a3e24b4a786dde534eb58936b1bff4012ddf964ed9d32c1f1c03a45edd21bb79f49d791398f56
+EBUILD percona-server-5.6.40.84.0.ebuild 31732 BLAKE2B 253a7c8f0a734824a8f11e689f49e5fd90369e6b507bbcfbf87d04af1c7804f8dfffd3ec69bd466a769203dae893d9326cbc8d8ded60ddf724a06369839a727a SHA512 414b14c70a25e2ad20a35013345ae81edc69c57d85662ef104dbc5d3d6bd98e9b89b775ad1f0f2c0842c3ec868a5c651d03b91cb15fb841700e9ec13d0e00d26
+EBUILD percona-server-5.6.41.84.1.ebuild 31633 BLAKE2B 0715c23cab0e532c855e6215bf8f1d319f774a9b825e69957639681027bf179b1cf5334e518ca066f561d9bb431bb8ebd9caed5acc33ffeb4369ed02c4962c0f SHA512 88f79bf0b9873a8daf0759cfcc0095d2480a1f098a9ef15536cb331eb4bd2c4e38b40299081baca296e4f6c51f9a3e6f65741c3886ba98473c59b43cfc8149df
+MISC metadata.xml 1387 BLAKE2B 0998726bdceb6d498051f6ae741a8d762f7bb0ec6cb6659e104cce9fd5bb8615ecb0a531a8d3691d70567973efee47ae6fac339f41cdd6851675dd10301d94c3 SHA512 836f32db502edd1de90ecf0ce155326d0f2d1338aaf0ad21bc2f755e50e1f3e456c5735d338d71095eb9f05142843a430675ff65603b07fd63fd74691e3c9040
diff --git a/dev-db/percona-server/metadata.xml b/dev-db/percona-server/metadata.xml
index 7f9daa6409f1..f3ddb7484a2a 100644
--- a/dev-db/percona-server/metadata.xml
+++ b/dev-db/percona-server/metadata.xml
@@ -7,13 +7,10 @@
</maintainer>
<use>
<flag name="client-libs">Build the libmysqlclient libraries</flag>
- <flag name="embedded">Build embedded server (libmysqld)</flag>
- <flag name="extraengine">Add support for alternative storage engines (Archive, CSV, Blackhole, Federated(X), Partition)</flag>
<flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations.</flag>
<flag name="latin1">Use LATIN1 encoding instead of UTF8</flag>
<flag name="libressl">Enable SSL connections and crypto functions using <pkg>dev-libs/libressl</pkg></flag>
<flag name="numa">Enable NUMA support using <pkg>sys-process/numactl</pkg> (NUMA kernel support is also required)</flag>
- <flag name="openssl">Enable SSL connections and crypto functions using <pkg>dev-libs/openssl</pkg></flag>
<flag name="profiling">Add support for statement profiling (requires USE=community).</flag>
<flag name="rocksdb">Add support for RocksDB; a key/value, LSM database optimized for flash storage</flag>
<flag name="server">Build the server program</flag>
diff --git a/dev-db/percona-server/percona-server-5.6.39.83.1.ebuild b/dev-db/percona-server/percona-server-5.6.39.83.1.ebuild
deleted file mode 100644
index 2e7499a7dc6e..000000000000
--- a/dev-db/percona-server/percona-server-5.6.39.83.1.ebuild
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20171121-1518Z"
-SUBSLOT="18"
-PYTHON_COMPAT=( python2_7 )
-# Build fails with ninja
-CMAKE_MAKEFILE_GENERATOR="emake"
-inherit linux-info python-any-r1 mysql-multilib-r1 toolchain-funcs
-
-IUSE="numa pam tokudb tokudb-backup-plugin"
-
-# REMEMBER: also update eclass/mysql*.eclass before committing!
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-linux"
-HOMEPAGE="https://www.percona.com/software/percona-server"
-DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
-
-# When MY_EXTRAS is bumped, the index should be revised to exclude these.
-EPATCH_EXCLUDE=''
-
-COMMON_DEPEND="numa? ( sys-process/numactl:= )
- server? ( pam? ( virtual/pam:0= ) )
- tokudb? ( app-arch/snappy )
- tokudb-backup-plugin? ( dev-util/valgrind )
- "
-
-DEPEND="${COMMON_DEPEND}
- || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
- test? (
- $(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
- dev-perl/JSON
- )"
-RDEPEND="${COMMON_DEPEND}"
-
-REQUIRED_USE="tokudb-backup-plugin? ( tokudb ) tokudb? ( jemalloc !tcmalloc )"
-
-MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-
-PATCHES=(
- "${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
- "${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
- "${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
- "${MY_PATCH_DIR}"/20006_all_cmake_elib-percona-5.6.34.patch
- "${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
- "${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch
- "${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
- "${MY_PATCH_DIR}"/20018_all_percona-server-5.6.25-without-clientlibs-tools.patch
-)
-
-# Please do not add a naive src_unpack to this ebuild
-# If you want to add a single patch, copy the ebuild to an overlay
-# and create your own mysql-extras tarball, looking at 000_index.txt
-
-pkg_pretend() {
- mysql-multilib-r1_pkg_pretend
-
- if use numa; then
- local CONFIG_CHECK="~NUMA"
-
- local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
- WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
- check_extra_config
- fi
-}
-
-python_check_deps() {
- has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-src_prepare() {
- mysql-multilib-r1_src_prepare
- if use libressl ; then
- sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
- "${S}/cmake/ssl.cmake" || die
- fi
-}
-
-src_configure() {
- local MYSQL_CMAKE_NATIVE_DEFINES=( -DWITH_NUMA=$(usex numa)
- -DWITH_PAM=$(usex pam)
- $(mysql-cmake_use_plugin tokudb TOKUDB)
- )
- if use tokudb ; then
- # TokuDB Backup plugin requires valgrind unconditionally
- MYSQL_CMAKE_NATIVE_DEFINES+=(
- $(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
- )
- fi
- mysql-multilib-r1_src_configure
-}
-
-# Official test instructions:
-# USE='extraengine perl openssl static-libs' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-multilib_src_test() {
-
- if ! multilib_is_native_abi ; then
- einfo "Server tests not available on non-native abi".
- return 0;
- fi
-
- if ! use server ; then
- einfo "Skipping server tests due to minimal build."
- return 0
- fi
-
- local TESTDIR="${CMAKE_BUILD_DIR}/mysql-test"
- local retstatus_unit
- local retstatus_tests
-
- # Bug #213475 - MySQL _will_ object strenously if your machine is named
- # localhost. Also causes weird failures.
- [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
-
- if [[ $UID -eq 0 ]]; then
- die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
- fi
-
- einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
- # Run CTest (test-units)
- cmake-utils_src_test
- retstatus_unit=$?
- [[ $retstatus_unit -eq 0 ]] || eerror "test-unit failed"
-
- # Ensure that parallel runs don't die
- export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
- # Enable parallel testing, auto will try to detect number of cores
- # You may set this by hand.
- # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
- export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
- # create directories because mysqladmin might right out of order
- mkdir -p "${T}"/var-tests{,/log}
-
- # These are failing in Percona 5.6 for now and are believed to be
- # false positives:
- #
- # main.information_schema, binlog.binlog_statement_insert_delayed,
- # main.mysqld--help-notwin, binlog.binlog_mysqlbinlog_filter
- # perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt
- # funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers
- # engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate
- # engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8
- # engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate
- # fails due to USE=-latin1 / utf8 default
- #
- # main.mysql_client_test:
- # segfaults at random under Portage only, suspect resource limits.
- #
- # main.percona_bug1289599
- # Looks to be a syntax error in the test file itself
- #
- # main.variables main.myisam main.merge_recover
- # fails due to ulimit not able to open enough files (needs 5000)
- #
- # main.mysqlhotcopy_archive main.mysqlhotcopy_myisam
- # Called with bad parameters should be reported upstream
- #
-
- local t
-
- for t in main.mysql_client_test \
- binlog.binlog_statement_insert_delayed main.information_schema \
- main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
- perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
- funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
- main.variables main.myisam main.merge_recover \
- engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
- engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
- engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
- main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
- mysql-multilib-r1_disable_test "$t" "False positives in Gentoo"
- done
-
- if use numa && use kernel_linux ; then
- # bug 584880
- if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
- for t in sys_vars.innodb_buffer_pool_populate_basic ; do
- mysql-multilib-r1_disable_test "$t" "Test $t requires system with NUMA support"
- done
- fi
- fi
-
- if ! use extraengine ; then
- # bug 401673, 530766
- for t in federated.federated_plugin ; do
- mysql-multilib-r1_disable_test "$t" "Test $t requires USE=extraengine (Need federated engine)"
- done
- fi
-
- # Run mysql tests
- pushd "${TESTDIR}" || die
-
- # Set file limits higher so tests run
- if ! ulimit -n 16500 1>/dev/null 2>&1; then
- # Upper limit comes from parts.partition_* tests
- ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
- if ! ulimit -n 4162 1>/dev/null 2>&1; then
- # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
- ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
- if ! ulimit -n 3000 1>/dev/null 2>&1; then
- ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
- else
- einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
- fi
- else
- einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
- fi
- else
- einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
- fi
-
- python_setup
- # run mysql-test tests
- perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
- --testcase-timeout=30 --reorder
- retstatus_tests=$?
- [[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
-
- popd || die
-
- # Cleanup is important for these testcases.
- pkill -9 -f "${S}/ndb" 2>/dev/null
- pkill -9 -f "${S}/sql" 2>/dev/null
-
- failures=""
- [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
- [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
- if [[ -n "$failures" ]]; then
- has usersandbox $FEATURES && eerror "Some tests may have failed due to FEATURES=usersandbox"
- die "Test failures: $failures"
- fi
-
- einfo "Tests successfully completed"
-}
diff --git a/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild b/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild
index c56c135cbbb4..e9264582226d 100644
--- a/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild
+++ b/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild
@@ -9,11 +9,11 @@ CMAKE_MAKEFILE_GENERATOR=emake
# Keeping eutils in EAPI=6 for emktemp in pkg_config
inherit linux-info python-any-r1 eutils flag-o-matic prefix toolchain-funcs \
- versionator user cmake-utils multilib-minimal
+ eapi7-ver user cmake-utils multilib-minimal
-MY_PV=$(replace_version_separator 3 '-')
+MY_PV=$(ver_rs 3 '-')
MY_PN="Percona-Server"
-MY_MAJOR_PV=$(get_version_component_range 1-2)
+MY_MAJOR_PV=$(ver_cut 1-2)
MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.6/release-notes/release-notes_index.html"
SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz"
@@ -680,12 +680,12 @@ pkg_postinst() {
einfo
else
local _replacing_version=
+ local _new_version_branch=$(ver_cut 1-3 "${PV}")
for _replacing_version in ${REPLACING_VERSIONS}; do
- local _new_version_branch=$(get_version_component_range 1-3 "${PV}")
- local _replacing_version_branch=$(get_version_component_range 1-3 "${_replacing_version}")
+ local _replacing_version_branch=$(ver_cut 1-3 "${_replacing_version}")
debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..."
- if ! version_is_at_least "${_new_version_branch}" "${_replacing_version_branch}"; then
+ if ver_test "${_new_version_branch}" -gt "${_replacing_version_branch}"; then
debug-print "Upgrading from v${_replacing_version_branch} to v${_new_version_branch} ..."
# https://www.percona.com/blog/2014/09/19/mysql-upgrade-best-practices/
diff --git a/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild b/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild
index 0f90f84fff87..52760d63376a 100644
--- a/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild
+++ b/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild
@@ -9,11 +9,11 @@ CMAKE_MAKEFILE_GENERATOR=emake
# Keeping eutils in EAPI=6 for emktemp in pkg_config
inherit linux-info python-any-r1 eutils flag-o-matic prefix toolchain-funcs \
- versionator user cmake-utils multilib-minimal
+ eapi7-ver user cmake-utils multilib-minimal
-MY_PV=$(replace_version_separator 3 '-')
+MY_PV=$(ver_rs 3 '-')
MY_PN="Percona-Server"
-MY_MAJOR_PV=$(get_version_component_range 1-2)
+MY_MAJOR_PV=$(ver_cut 1-2)
MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.6/release-notes/release-notes_index.html"
SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz"
@@ -680,12 +680,12 @@ pkg_postinst() {
einfo
else
local _replacing_version=
+ local _new_version_branch=$(ver_cut 1-3 "${PV}")
for _replacing_version in ${REPLACING_VERSIONS}; do
- local _new_version_branch=$(get_version_component_range 1-3 "${PV}")
- local _replacing_version_branch=$(get_version_component_range 1-3 "${_replacing_version}")
+ local _replacing_version_branch=$(ver_cut 1-3 "${_replacing_version}")
debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..."
- if ! version_is_at_least "${_new_version_branch}" "${_replacing_version_branch}"; then
+ if ver_test "${_new_version_branch}" -gt "${_replacing_version_branch}"; then
debug-print "Upgrading from v${_replacing_version_branch} to v${_new_version_branch} ..."
# https://www.percona.com/blog/2014/09/19/mysql-upgrade-best-practices/