MySQL upgrade fails due to presence of directories containing a dot

This document (7014519) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Linux Enterprise Subscription Management Tool SP3

Situation

The upgrade from a MySQL 5.x (SMT 11 SP2) installation to 5.5.x (SMT 11 SP3) hosting a SMT database fails due to the presence of a hidden directory:
 # touch /var/lib/mysql/.force_upgrade
 # rcmysql restart
Restarting service MySQL
Shutting down service MySQL
done
Will update MySQL now, if you encounter any problems, please read
following file:
        /usr/share/doc/packages/mysql/README.SuSE
Log files inconsistency, please merge following files manually:
        /var/lib/mysql/mysqld.log
        /var/log/mysqld.log
Running protected MySQL...
Upgrading MySQL...
Failed to ALTER DATABASE `#mysql50#.tmp` UPGRADE DATA DIRECTORY NAME
Error: Incorrect database name '#mysql50#.tmp'
/usr/bin/mysqlcheck: Got error: 1102: Incorrect database name
'#mysql50#.tmp' when selecting the database
FATAL ERROR: Upgrade failed
   Looking for 'mysql' as: /usr/bin/mysql
   Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
   Running 'mysqlcheck' with connection arguments:
   '--socket=/var/tmp/mysql-protected.9ixAiH/mysql.sock'
   Running 'mysqlcheck' with connection arguments:
   '--socket=/var/tmp/mysql-protected.9ixAiH/mysql.sock'
or because of a 3rd party database containing a "." in the folder name
linux:~ # touch /var/lib/mysql/.force_upgrade
linux:~ # rcmysql restart
Restarting service MySQL
Shutting down service MySQL                                                                                                               done
Will update MySQL now, if you encounter any problems, please read following file:
            /usr/share/doc/packages/mysql/README.SuSE
Log files inconsistency, please merge following files manually:
            /var/lib/mysql/mysqld.log
            /var/log/mysqld.log
Running protected MySQL...
Upgrading MySQL...
Failed to ALTER DATABASE `#mysql50#cacti.org` UPGRADE DATA DIRECTORY NAME
Error: Incorrect database name '#mysql50#cacti.org'
/usr/bin/mysqlcheck: Got error: 1102: Incorrect database name '#mysql50#cacti.org' when selecting the database
FATAL ERROR: Upgrade failed
  Looking for 'mysql' as: /usr/bin/mysql
  Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
  Running 'mysqlcheck' with connection arguments: '--socket=/var/tmp/mysql-protected.m7WZgW/mysql.sock'
  Running 'mysqlcheck' with connection arguments: '--socket=/var/tmp/mysql-protected.m7WZgW/mysql.sock'


Resolution

Make sure the mysql service is stopped, backup /var/lib/mysql completely and move the corresponding directory away from the database directory, then restart mysql to continue with the upgrade.

Cause


Additional Information

Although MySQL is perfectly able to host several databases, 3rd party databases represent an unsupported scenario on a Subscription Management Tool setup.

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7014519
  • Creation Date: 07-Feb-2014
  • Modified Date:03-Mar-2020
    • Subscription Management Tool
    • SUSE Linux Enterprise Server

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.


SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center