PDO не может подключиться к удаленному серверу MySQL
Сервер A(192.168.1.3)
Сервер MySQL (5.6.12) порт 6603, сокет /var/run/mysql/mysql.sock
php (5.5.0) php.ini pdo_mysql.default_socket = /var/run/mysql/mysql.sock
сервер B(192.168.1.4)
MySQL сервер (5.5.11) порт 3306, сокет /var/run/mysql/mysql.sock
На сервере А есть работа при использовании
$conn = new PDO('mysql:hostname=localhost;dbname=DB_TEST','username','password');
но не может подключиться к серверу B при использовании
$conn = new PDO('mysql:hostname=192.168.1.4;dbname=DB_TEST;port=3306','username','password');
ОШИБКА:SQLSTATE[28000] [1045] Доступ запрещен для пользователя 'username'@'localhost' (используется пароль: YES)
но работать на
$conn = mysql_connect('192.168.1.4:3306', 'username', 'password');
5 ответов
$conn = new PDO('mysql:hostname=192.168.1.4;dbname=DB_TEST;port=3306','username','password');
должно быть
$conn = new PDO('mysql:host=192.168.1.4;dbname=DB_TEST;port=3306','username','password');
hostname
недействителен для dsn
так что PDO
игнорирует хост и использует значение по умолчанию, которое localhost
Хорошо, у меня тоже была такая же проблема. решения это пространство между
mysql: host
-> это работает очень хорошо!!!
таким образом, вы можете подключиться к удаленному MySQL
Проблема на удаленном PDO mysql conex находится в строке db. Правильное утверждение:
$conn = new PDO('mysql:host=192.168.1.4:3306;dbname=DB_TEST','username','password');
С Уважением,
Имя хоста неверно, вместо него используйте хост. Правильное утверждение:
$conn = new PDO('mysql:host=192.168.1.4:3306;dbname=DB_TEST','username','password');
Убедитесь, что вы используете правильное имя пользователя, так как оно чувствительно к регистру.