From c7ddec71e1440d9874df0ebe01a8d44cef282671 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 26 Feb 2026 15:12:47 +0530 Subject: [PATCH 1/7] Doc update for MySQL 8.4 support --- source/releasenotes/compat.rst | 2 +- source/upgrading/upgrade/upgrade_notes.rst | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/source/releasenotes/compat.rst b/source/releasenotes/compat.rst index e77e2a06a8..b4e5af8314 100644 --- a/source/releasenotes/compat.rst +++ b/source/releasenotes/compat.rst @@ -38,7 +38,7 @@ Software Requirements ~~~~~~~~~~~~~~~~~~~~~ - Java JRE 17 -- MySQL 8.0 (or equivalent compatible DBMS) +- MySQL 8.4 (or equivalent compatible DBMS) Supported Hypervisor Versions ----------------------------- diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index 4493589159..cb904da467 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -120,8 +120,18 @@ added in CloudStack's db.properties file: db.usage.driver=jdbc:mysql +MySQL support updated to 8.4 +---------------------------- -MySQL 8.0 sql mode change +As of Apache CloudStack 4.20.3, support for MySQL 8.4 has been added. + +Existing deployments upgraded to version 4.20.3 can still continue using MySQL 8.0 +without any changes. + +If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, +you may follow the standard MySQL upgrade process to migrate safely to version 8.4. + +MySQL 8.4 sql mode change ------------------------- MySQL mode (sql_mode) has changed in CloudStack db.properties to From e7762b4b01117b73bc6f6f0eba1bab973b7163d8 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 5 Mar 2026 14:01:26 +0530 Subject: [PATCH 2/7] added steps to update authentication method to caching_sha2_password --- source/upgrading/upgrade/upgrade_notes.rst | 58 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index cb904da467..f26cce581f 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -129,7 +129,63 @@ Existing deployments upgraded to version 4.20.3 can still continue using MySQL 8 without any changes. If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, -you may follow the standard MySQL upgrade process to migrate safely to version 8.4. +you may follow the standard MySQL upgrade process to migrate safely to version 8.4, +and then update the authentication method for the CloudStack and root users with +caching_sha2_password plugin using the below steps as the mysql_native_password plugin +is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. + + * Stop MySQL if already running + + .. code-block:: bash + + sudo systemctl stop mysqld + + * Start in safe mode without auth + + .. code-block:: bash + + sudo mysqld --skip-grant-tables --skip-networking & + + * Login without password + + .. code-block:: bash + + mysql -u root + + * Reset passwords + + .. code-block:: bash + + ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'cloud'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + ALTER USER 'cloud'@'%' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + FLUSH PRIVILEGES; + + Note: Please ensure that the password used for the cloud database user matches the value + configured in /etc/cloudstack/management/db.properties. If the password in db.properties + is encrypted, you can retrieve it using: + + .. code-block:: bash + + java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ + com.cloud.utils.crypt.EncryptionCLI -d \ + -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ + -p "$(cat /etc/cloudstack/management/key)" + + * Remove deprecated authentication plugin 'mysql_native_password' from the configuration. comment + or remove the below line from /etc/my.cnf + + .. code-block:: bash + + default_authentication_plugin=mysql_native_password + + * Restart mysql server + + .. code-block:: bash + + killall mysqld + systemctl start mysqld MySQL 8.4 sql mode change ------------------------- From 8af5a272baa9b1e195cbd2a9ad66910adc3c2515 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 5 Mar 2026 14:43:47 +0530 Subject: [PATCH 3/7] fix alignment --- source/upgrading/upgrade/upgrade_notes.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index f26cce581f..eb5523a519 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -173,8 +173,7 @@ is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ -p "$(cat /etc/cloudstack/management/key)" - * Remove deprecated authentication plugin 'mysql_native_password' from the configuration. comment - or remove the below line from /etc/my.cnf + * Remove deprecated authentication plugin 'mysql_native_password' from the configuration. Either comment or remove the below line from /etc/my.cnf .. code-block:: bash From 275e1cb617e867604528dc5f57439c03289e99bd Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 5 Mar 2026 14:49:19 +0530 Subject: [PATCH 4/7] some text improvements --- source/upgrading/upgrade/upgrade_notes.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index eb5523a519..a9a4e45be4 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -130,29 +130,29 @@ without any changes. If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, you may follow the standard MySQL upgrade process to migrate safely to version 8.4, -and then update the authentication method for the CloudStack and root users with +and then update the authentication method for the root and CloudStack (cloud) users with caching_sha2_password plugin using the below steps as the mysql_native_password plugin is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. - * Stop MySQL if already running + * Stop MySQL server if already running .. code-block:: bash sudo systemctl stop mysqld - * Start in safe mode without auth + * Start MySQL server in safe mode without auth .. code-block:: bash sudo mysqld --skip-grant-tables --skip-networking & - * Login without password + * Login to MySQL without password .. code-block:: bash mysql -u root - * Reset passwords + * Reset passwords for root and CloudStack (cloud) user .. code-block:: bash @@ -173,13 +173,13 @@ is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ -p "$(cat /etc/cloudstack/management/key)" - * Remove deprecated authentication plugin 'mysql_native_password' from the configuration. Either comment or remove the below line from /etc/my.cnf + * Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf .. code-block:: bash default_authentication_plugin=mysql_native_password - * Restart mysql server + * Restart MySQL server .. code-block:: bash From 3d38bb125f82ec70db37b738af0c75e6d68cf83e Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 5 Mar 2026 16:26:15 +0530 Subject: [PATCH 5/7] fix alignments --- source/upgrading/upgrade/upgrade_notes.rst | 65 +++++++++++----------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index a9a4e45be4..c162fd2a81 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -132,59 +132,60 @@ If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, you may follow the standard MySQL upgrade process to migrate safely to version 8.4, and then update the authentication method for the root and CloudStack (cloud) users with caching_sha2_password plugin using the below steps as the mysql_native_password plugin -is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. +is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. For more details, +refer to MySQL documentation here: https://dev.mysql.com/doc/refman/8.4/en/caching-sha2-pluggable-authentication.html - * Stop MySQL server if already running +#. Stop MySQL server if already running - .. code-block:: bash + .. code-block:: bash - sudo systemctl stop mysqld + sudo systemctl stop mysqld - * Start MySQL server in safe mode without auth +#. Start MySQL server in safe mode without auth - .. code-block:: bash + .. code-block:: bash - sudo mysqld --skip-grant-tables --skip-networking & + sudo mysqld --skip-grant-tables --skip-networking & - * Login to MySQL without password +#. Login to MySQL without password - .. code-block:: bash + .. code-block:: bash - mysql -u root + mysql -u root - * Reset passwords for root and CloudStack (cloud) user +#. Reset passwords for root and CloudStack (cloud) users. - .. code-block:: bash + .. code-block:: mysql - ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; - ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; - ALTER USER 'cloud'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; - ALTER USER 'cloud'@'%' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; - FLUSH PRIVILEGES; + ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'cloud'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + ALTER USER 'cloud'@'%' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + FLUSH PRIVILEGES; - Note: Please ensure that the password used for the cloud database user matches the value - configured in /etc/cloudstack/management/db.properties. If the password in db.properties - is encrypted, you can retrieve it using: + Note: Please ensure that the password used for the cloud database user matches the value + configured in /etc/cloudstack/management/db.properties. If the password in db.properties + is encrypted, you can retrieve it using: - .. code-block:: bash + .. code-block:: bash - java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ - com.cloud.utils.crypt.EncryptionCLI -d \ - -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ - -p "$(cat /etc/cloudstack/management/key)" + java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ + com.cloud.utils.crypt.EncryptionCLI -d \ + -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ + -p "$(cat /etc/cloudstack/management/key)" - * Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf +#. Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf - .. code-block:: bash + .. parsed-literal:: - default_authentication_plugin=mysql_native_password + default_authentication_plugin=mysql_native_password - * Restart MySQL server +#. Restart MySQL server - .. code-block:: bash + .. code-block:: bash - killall mysqld - systemctl start mysqld + killall mysqld + systemctl start mysqld MySQL 8.4 sql mode change ------------------------- From 09885d3ae58915c571264f96b8bc4e20467ed759 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Thu, 5 Mar 2026 16:42:12 +0530 Subject: [PATCH 6/7] changes --- source/upgrading/upgrade/upgrade_notes.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index c162fd2a81..14b339349a 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -165,14 +165,14 @@ refer to MySQL documentation here: https://dev.mysql.com/doc/refman/8.4/en/cachi Note: Please ensure that the password used for the cloud database user matches the value configured in /etc/cloudstack/management/db.properties. If the password in db.properties - is encrypted, you can retrieve it using: + is encrypted, you can retrieve it using the below command. - .. code-block:: bash + .. code-block:: bash - java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ - com.cloud.utils.crypt.EncryptionCLI -d \ - -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ - -p "$(cat /etc/cloudstack/management/key)" + java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ + com.cloud.utils.crypt.EncryptionCLI -d \ + -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ + -p "$(cat /etc/cloudstack/management/key)" #. Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf From d7f9f08c45864f5e6c2bcca87e4b7f6cafb5c78a Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Fri, 6 Mar 2026 18:07:38 +0530 Subject: [PATCH 7/7] move mysql upgrade details to mysql.rst --- source/upgrading/upgrade/mysql.rst | 103 ++++++++++++++++++++- source/upgrading/upgrade/upgrade_notes.rst | 98 +------------------- 2 files changed, 103 insertions(+), 98 deletions(-) diff --git a/source/upgrading/upgrade/mysql.rst b/source/upgrading/upgrade/mysql.rst index ea9e88497a..a0e611f41e 100644 --- a/source/upgrading/upgrade/mysql.rst +++ b/source/upgrading/upgrade/mysql.rst @@ -13,8 +13,109 @@ specific language governing permissions and limitations under the License. +MySQL upgrade +============= + +Explicit JDBC driver declaration +-------------------------------- + +While upgrading, on some environments the following may be required to be +added in CloudStack's db.properties file: + + # Add these to your db.properties file + + db.cloud.driver=jdbc:mysql + + db.usage.driver=jdbc:mysql + +MySQL support updated to 8.4 +---------------------------- + +As of Apache CloudStack 4.20.3, support for MySQL 8.4 has been added. + +Existing deployments upgraded to version 4.20.3 can still continue using MySQL 8.0 +without any changes. + +If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, +you may follow the standard MySQL upgrade process to migrate safely to version 8.4, +and then update the authentication method for the root and CloudStack (cloud) users with +caching_sha2_password plugin using the below steps as the mysql_native_password plugin +is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. For more details, +refer to MySQL documentation here: https://dev.mysql.com/doc/refman/8.4/en/caching-sha2-pluggable-authentication.html + +#. Stop MySQL server if already running + + .. code-block:: bash + + sudo systemctl stop mysqld + +#. Start MySQL server in safe mode without auth + + .. code-block:: bash + + sudo mysqld --skip-grant-tables --skip-networking & + +#. Login to MySQL without password + + .. code-block:: bash + + mysql -u root + +#. Reset passwords for root and CloudStack (cloud) users. + + .. code-block:: mysql + + ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; + ALTER USER 'cloud'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + ALTER USER 'cloud'@'%' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; + FLUSH PRIVILEGES; + + Note: Please ensure that the password used for the cloud database user matches the value + configured in /etc/cloudstack/management/db.properties. If the password in db.properties + is encrypted, you can retrieve it using the below command. + + .. code-block:: bash + + java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ + com.cloud.utils.crypt.EncryptionCLI -d \ + -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ + -p "$(cat /etc/cloudstack/management/key)" + +#. Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf + + .. parsed-literal:: + + default_authentication_plugin=mysql_native_password + +#. Restart MySQL server + + .. code-block:: bash + + killall mysqld + systemctl start mysqld + +MySQL 8.0+ sql mode change +-------------------------- + +MySQL mode (sql_mode) has changed in CloudStack db.properties to +"STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, +ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION". + +This gets automatically applies to the MySQL session used by CloudStack management server. + +If the admin uses MySQL directly and wants to query tables it is advised to change the sql_mode in the corresponding session or globally. + +Eg. mysql> set global sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, + "> ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; + Query OK, 0 rows affected (0.00 sec) + + mysql> set sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, + "> ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; + Query OK, 0 rows affected (0.00 sec) + MySQL upgrade problems -====================== +---------------------- With certain MySQL versions (see below), issues have been seen with "cloud.nics" table's column type (which was not updated properly during CloudStack upgrades, due to MySQL limitations), diff --git a/source/upgrading/upgrade/upgrade_notes.rst b/source/upgrading/upgrade/upgrade_notes.rst index 14b339349a..c433e87290 100644 --- a/source/upgrading/upgrade/upgrade_notes.rst +++ b/source/upgrading/upgrade/upgrade_notes.rst @@ -108,100 +108,4 @@ SystemVM 32bit deprecated 32bit versions of System VM Templates are in the process of being deprecated. Upgrade instructions from this Release Notes use 64bit Templates. -Explicit JDBC driver declaration --------------------------------- - -While upgrading, on some environments the following may be required to be -added in CloudStack's db.properties file: - - # Add these to your db.properties file - - db.cloud.driver=jdbc:mysql - - db.usage.driver=jdbc:mysql - -MySQL support updated to 8.4 ----------------------------- - -As of Apache CloudStack 4.20.3, support for MySQL 8.4 has been added. - -Existing deployments upgraded to version 4.20.3 can still continue using MySQL 8.0 -without any changes. - -If you are running MySQL 8.0 and would like to upgrade to MySQL 8.4, -you may follow the standard MySQL upgrade process to migrate safely to version 8.4, -and then update the authentication method for the root and CloudStack (cloud) users with -caching_sha2_password plugin using the below steps as the mysql_native_password plugin -is deprecated as of MySQL 8.0.34, and disabled by default in MySQL 8.4. For more details, -refer to MySQL documentation here: https://dev.mysql.com/doc/refman/8.4/en/caching-sha2-pluggable-authentication.html - -#. Stop MySQL server if already running - - .. code-block:: bash - - sudo systemctl stop mysqld - -#. Start MySQL server in safe mode without auth - - .. code-block:: bash - - sudo mysqld --skip-grant-tables --skip-networking & - -#. Login to MySQL without password - - .. code-block:: bash - - mysql -u root - -#. Reset passwords for root and CloudStack (cloud) users. - - .. code-block:: mysql - - ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; - ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'ROOT_PASSWORD'; - ALTER USER 'cloud'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; - ALTER USER 'cloud'@'%' IDENTIFIED WITH caching_sha2_password BY 'CLOUD_PASSWORD'; - FLUSH PRIVILEGES; - - Note: Please ensure that the password used for the cloud database user matches the value - configured in /etc/cloudstack/management/db.properties. If the password in db.properties - is encrypted, you can retrieve it using the below command. - - .. code-block:: bash - - java -classpath /usr/share/cloudstack-common/lib/cloudstack-utils.jar \ - com.cloud.utils.crypt.EncryptionCLI -d \ - -i "$(grep -oP 'db.cloud.password=ENC\(\K[^\)]+(?=\))' /etc/cloudstack/management/db.properties)" \ - -p "$(cat /etc/cloudstack/management/key)" - -#. Remove deprecated authentication plugin 'mysql_native_password' from the MySQL configuration. Either comment or remove the below line from /etc/my.cnf - - .. parsed-literal:: - - default_authentication_plugin=mysql_native_password - -#. Restart MySQL server - - .. code-block:: bash - - killall mysqld - systemctl start mysqld - -MySQL 8.4 sql mode change -------------------------- - -MySQL mode (sql_mode) has changed in CloudStack db.properties to -"STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, -ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION". - -This gets automatically applies to the MySQL session used by CloudStack management server. - -If the admin uses MySQL directly and wants to query tables it is advised to change the sql_mode in the corresponding session or globally. - -Eg. mysql> set global sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, - "> ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; - Query OK, 0 rows affected (0.00 sec) - - mysql> set sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE, - "> ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; - Query OK, 0 rows affected (0.00 sec) \ No newline at end of file +.. include:: mysql.rst