What a headache that was …
ISPConfig 3.2 can work with Ubuntu 20.04.1 LTS without to much grief; it just isn’t particularly well documented. So here is some help.
Ubuntu has significantly upgraded it’s packages that it ships with the latest LTS release. Which is great, well it is great until you’re running ISPConfig and wonder why nothing works any more. Then you google stuff .. see everyone complaining that it doesn’t work with MySQL 8 … various little things about creating users … but they miss the one little thing it needs.
It is very, very important to note that SUPER has to be granted on ALL databases. So after you drop the current ‘ispconfig’ user and recreate it with the new command and then grant all privileges … then spend the next hour or so pulling the little remaining hair out of your head, you will then hopefully find this little post.
dev.mysql.com › doc › refman › grant
Granting ALL does not assign the GRANT OPTION or PROXY privilege. … and SUPER static privileges are administrative and can only be granted globally.
Make sure you upgrade ISPConfig before upgrading to Ubuntu 20.04.1, better to be safe than sorry as they say.
So > ispconfig_update.sh
Now upgrade to Ubuntu 20.04.1 LTS
> do-release-upgrade
Keep your configs for the most part and everything will just reboot happily with existing websites working straight off of the bat, including any wordpress/cms sites.
But you now need to fix that pesky error message:
ispconfig Access denied; you need (at least one of) the SUPER, SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation
- Run MySQL as root mysql -u root -p
- drop user ‘ispconfig’@’localhost’;
- create user ‘ispconfig’@’%’ identified by ‘<insert password from ispconfig configuration>’;
- grant all dbispconfig.* to ‘ispconfig’@’%’;
- grant super *.* to ‘ispconfig’@’%’;
And you’re now sorted and running ISPConfig 3.2 on Ubuntu 20.04.1 LTS because you are a super hero.
I do hope that helps someone.
D.
UPDATE
It is also worth noting that the installation, or rather upgrade to MySQL v8 also changes the root user, irrespective of what it was (which was generally a local user with a password), it is changed to an auth_socket user.
mysql> select user, plugin from mysql.user where user='root';
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
+------------------+-----------------------+
1 row in set (0.01 sec)
So you have to change it back to whatever it was before you upgraded to MySQL v8. You should use the ALTER command:
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '***********';
Obviously substitute the asterisks for your own particular password.
mysql> select user, plugin from mysql.user where user='root';
+------+-----------------------+
| user | plugin |
+------+-----------------------+
| root | mysql_native_password |
+------+-----------------------+
1 row in set (0.01 sec)
Now you can do clever things like run ispconfig_update.sh without incident!
Leave a Reply