Page MenuHomePhabricator

granting db permissions fails
Closed, ResolvedPublic

Description

Author: js

Description:
MediaWiki 1.4.0 installation

Please include all of the lines below when reporting installation problems.
Checking environment...

  • PHP 4.3.10-2: ok
  • PHP server API is apache; ok, using pretty URLs (index.php/Page_Title)
  • Have XML / Latin1-UTF-8 conversion support.
  • PHP's memory_limit is 8M. If this is too low, installation may fail!

Attempting to raise limit to 20M... ok.

  • Have zlib support; enabling output compression.
  • Turck MMCache installed
  • Found ImageMagick: /usr/bin/convert; image thumbnailing will be enabled if

you enable uploads.

  • Installation directory: /var/www/v4lwiki
  • Script URI path: /v4lwiki
  • Connected as root (automatic)
  • Connected to database... 4.0.23_Debian-4; enabling MySQL 4 enhancements
  • Created database v4l-wikidb
  • Creating tables... done.
  • Initializing data...
  • Granting user permissions... Query "GRANT DELETE,INSERT,SELECT,UPDATE ON v4l-wikidb.* TO

v4l-wikiuser@'%' IDENTIFIED BY '*'" failed with error code "You have an
error in your SQL syntax. Check the manual that corresponds to your MySQL server
version for the right syntax to use near '-wikiuser@'%' IDENTIFIED BY
'
**'' at line 1".

Probably the dash in the db name or db user name is not tolerated?
This worked fine with 1.3.11.


Version: 1.4.x
Severity: normal

Details

Reference
bz1734

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 8:16 PM
bzimport set Reference to bz1734.
bzimport added a subscriber: Unknown Object (MLST).

richholton wrote:

Indeed, this appears to be an issue with the special character "-". From the
MySQL reference manual page on GRANT (http://dev.mysql.com/doc/mysql/en/grant.html):

In order to accommodate granting rights to users from arbitrary hosts, MySQL
supports specifying the user value in the form user_name@host_name. If a
user_name or host_name value is legal as an unquoted identifier, you need not
quote it. However, quotes are necessary to specify a user_name string containing
special characters (such as '-'), or a host_name string containing special
characters or wildcard characters (such as '%'); for example,
'test-user'@'test-hostname'. Quote the username and hostname separately.

In this case, I'm guessing that v4l-wikiuser needs to be quoted for the query to
work.

richholton wrote:

Looks like this particular error can be eliminated by changing
maintenance\users.sql to put quotes around {$wgDBuser}:

GRANT DELETE,INSERT,SELECT,UPDATE ON {$wgDBname}.*
TO '{$wgDBuser}'@'%' IDENTIFIED BY '{$wgDBpassword}';
GRANT DELETE,INSERT,SELECT,UPDATE ON {$wgDBname}.*
TO '{$wgDBuser}'@localhost IDENTIFIED BY '{$wgDBpassword}';
GRANT DELETE,INSERT,SELECT,UPDATE ON {$wgDBname}.*
TO '{$wgDBuser}'@localhost.localdomain IDENTIFIED BY '{$wgDBpassword}';

Note that I've not tested this! (I'm not currently set up to do so...).

Note also that, though this may fix the current bug, there may be related
issues elsewhere.

Fixed the users.sql using Richard J. Holton's patch.