Sometimes you will receive an error:
An error has occurred. 0 SQL=
when installing or upgrading Akeeba Backup. This error occurs only on Windows when you are using an uppercase database table prefix and your default database engine is set up to be MyISAM (default configuration on pre-packaged servers). The solution is to use a lowercase database prefix in your site's Global Configuration page.
Technical explanation
This is actually a problem with MySQL when you're using MyISAM tables. Each MyISAM table is saved as a file on your hard drive. The name of the file is the name of your table. On Windows the filenames ABC_something and abc_something point to the same filename as the underlying file system (NTFS or FAT32) is case insensitive – it treats uppercase and lowercase letters as the same. On Linux and other UNIX-based operating systems –where MySQL was originally designed to run– the file systems are case sensitive which means that ABC_something and abc_something are different files. This fundamental difference makes MySQL fail when trying to modify MyISAM tables whose name includes uppercase characters names on Windows.
This is not a problem with Akeeba software or Joomla!. It is a problem with MySQL. Our software uses abstracted table names, in the format #__something. The "#__" is called the metaprefix and is automatically replaced
by Joomla! itself to the configured database table prefix automatically. The SQL query with the replaced prefix is then sent to MySQL for execution. MySQL fails miserably –for the reasons already mentioned– without providing an error code and error message. This confuses Joomla!'s JDatabase API which ultimately results in this unintelligent error message.
A simple solution is:
- Open the file configuration.php, found in your site's root, with a plain text editor such as Notepad
- Search for the line starting with public $dbprefix
- Change the uppercase to lowercase
For example, if the original line reads:
public $dbprefix = "ABC_";
change it to read:
[code]public $dbprefix = "abc_";
WE STRONGLY ADVISE YOU TO NEVER USE UPPERCASE DATABASE TABLE PREFIXES.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!