From: Benjamin Lees [mailto:emufarmers@gmail.com] Sent: Thursday, August 05, 2010 2:16 PM To: MediaWiki announcements and site admin list Subject: Re: [Mediawiki-l] installation issue with 1.16.0 - mysql user privilege
Right. Users created through the installer pre-1.16 only had DELETE,INSERT,SELECT,UPDATE,CREATE TEMPORARY TABLES for the database. This meant that if an update involved the creation of new tables, the update would fail. If you're able to upgrade from 1.15 to 1.16 without any problems, you either already ran into this and granted the rest of the privileges to the user, or else you originally created the database/user before running the install script (or I'm misunderstanding what you're doing).
I installed the (pre-1.16.0) wikis using a "superuser" account, but it does not have all the privileges of the mysql root account. I installed wikis over many years just fine using that account, until I tried to install a 1.16.0 wiki, when I ran into this issue. Databases were not created in advance. When I update from 1.15.1 to 1.16.0 I have no errors and I use the same superuser account used to install the wiki. I have checked my logs, which I keep when I run update.php and refreshlinks.php, and no errors are seen. I also see many tables being created, like "user_properties" table and "log_search" table, so its not an issue of the superuser account creating tables.
I assume you're putting your existing user in the "Superuser name"
field (I'm pretty sure users.sql is only used if you've checked the "Use superuser account" box).
Right, checking superuser and using my mysql account, which has almost all privileges as root.
Users can only grant permissions they
have; if your existing user doesn't have all rights on the new database, it won't be able to grant them to the new user it's creating.
Yes, I think this is the problem, that my superuser is missing a privilege or two. Since the error is trying to add "ALL" privilege to the database_user, you would pretty much have to use the mysql root account to do the installation, which is likely the way most if not all installers do it. I have a security conscious mysql admin so the superuser account I have does not have ALL privilege.
But it seems strange that the 1.16.0 installation wants to give ALL privilege to the database_user it creates when it does not need ALL privilege, as proved by my ability to run update.php to upgrade from 1.15.1 to 1.16.0. I'm guessing they are planning for the future since it is not necessary now.
-Jim