try to set host in dsn of pdo like this:
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=xxx_online;host=192.168.1.105;';
$user = 'username';
$password = 'password';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
it works now. I misunderstood it.
The error means your username and/or password isn't correct, (or isn't actually set up on your server). The reason it works on your other server is because that user exists there.
You either need to check you have the right username and password set in your PHP file, or you need to create a new MySQL user, and connect with the new username and password for that server.
http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
If you're uncomfortable doing this from the command line, you can install phpMyAdmin via apt-get
and do it through a web interface.