сервер 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 server (5.5.11) порт 3306, socket /var/run/mysql/mysql.sock
На сервере A работает при использовании
$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');
$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');
С Уважением,