maybe localhost is not the corect database address
if its local try 127.0.0.1 or your fully qualified domain name ?
can you log into your system via ssh or telnet or somehting ?
if you can try typing
mysql -u usernamehere -p passwordhere
to see if you get the no permission on this level of access ?
if phpmyadmin is working flawlessly until you try and do these changes i would check your password is correct (in the config file) check you are using the correct system infomation (localhost) and check that your username johnxp has the priveledges to change these settings you are trying to change.... most linux setups ROOT has the main privledges or you might of created a new user called mysql when creating the whole setup ?
im not sure but i would check that johnxp has the rights to change the system (database) you should be able to grant him full rights with phpmyadmin anyhow depending on the user that is controlling mysql lmao sounds confusing right