By default, MySql servers on Linux machines where Plesk is installed, have the old_passwords=1 or ON flag.
That mean even if you have MySQL 5.5+ version, it still use old style of password storage, pre-mysql 4.1+
If you try to connect remote, from your local development machine, you will get an ugly error, like:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]  mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file' in
How to fix that [ You need mysql admin priviledges] :
- Create a new database user, someuser for instance directly in command line
- Grant priviledges to that user to the database you want to connect to.
- Now run the below SQL statements:
SET old_passwords = 0; UPDATE mysql.user SET Password = PASSWORD('somepassword') WHERE User = 'someuser' limit 1; SELECT LENGTH(Password) FROM mysql.user WHERE User = 'someuser'; FLUSH PRIVILEGES;
Now you can remotely connect to that server, using the user: someuser and password: somepassword
NOTE: if you browse the table mysql.user , you will note that the password field contain many more characters for the user someuser compared to the others.