Table 'mysql.servers' doesn't exist

I had the team at our data center upgrade PHP on our CentOS5 machine. we moved up to PHP 5.3.3.

This required us to also move up to MySQL 5.1.53 because we needed php_support to work…

Everything went pretty well (almost, two modules in our XOOPS site are now broken) most of the up-to-date PHP apps we run are happy… and faster!

But today I tried to edit the password for a MySQL users from inside WebMin’s MySQL manager GUI --> User Permissions --> select a user --> Edit – Set Password to [new password] --> save

and WebMin responded

Failed to save user : SQL flush privileges failed : Table ‘mysql.servers’ doesn’t exist.

So I’m think something is missing in our new MySQL set up? How to fix this?

I found this a common issue on the web for mysql upgrades and the recommendations to run:

mysql_fix_privilege_tables --user=admin --password=123admin#@ --verbose

which I tried, but silly me, I have a ! (bang) in my mysql admin password and this throws a

-bash: !******: event not found

I then tried to access the mysql table to edit the user and, though I could view and browser earlier, now even logged in as root, I’m getting denied access to the mysql table

I guess it may be wise to avoid exclamation marks in passwords… even wrapping it in single quotes did not help. At any rate … out of my depth…I don’t want to break the MySQL server, so…

I’m taking it back to the team (we pay them big bucks) and telling them the upgrade is not complete, needs a little tweaking.

Yeah, upgrading MySQL can come with complications :slight_smile:

It sounds like you’re close to getting that resolved though… you may be able to escape that ! by putting a \ before it.

For example, this command echos a ! mark:

echo !

That same idea should work when passing in the password to mysql_fix_privilege_tables.