pdo 데이터 연결을 만들고 있습니다. 연결은 localhost에서 잘 작동합니다. 그러나 원격 데이터베이스에 연결하고 전에 사용한 것과 동일한 자격 증명을 사용하면 빈 페이지, 오류 메시지, 빈 페이지 만 표시됩니다.SQLSTATE [HY000] [2002] 작업 시간이 초과되었습니다
이전 프로젝트에서 작동하는 것과 동일한 자격 증명이 mysqli에서 수행되었습니다.이 작업은 pdo로 수행됩니다.
두 가지 유형의 pdo 연결 코드를 시도했지만 그 중 아무 것도 작동하지 않습니다.
먼저 하나
$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';
$charset = 'utf8';
try {
$dsn = "mysql:host=$databaseHost;dbname=$databaseName;charset=$charset";
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $databaseUsername, $databasePassword, $opt);
두 번째 :
localhost를 모두 연결 작업, 난 그냥 브라우저에서 로컬로이 연결 페이지를로드하려고해도$databaseHost = 'x.xxx.xxx.xx';
$databaseName = 'xxxxxxxxx';
$databaseUsername = 'xxxxxxx';
$databasePassword = 'xxxxxx';
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO("mysql:host={$databaseHost};dbname={$databaseName}", $databaseUsername, $databasePassword, $opt);
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
, 주먹 옵션을 준 이 오류 :
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Operation timed out in /Applications/MAMP/htdocs/ijdb_pdo/config.php:24 Stack trace: #0 /Applications/MAMP/htdocs/ijdb_pdo/config.php(24): PDO->__construct('mysql:host=83.1...', 'u1164707_sohail', 'sohail123', Array) #1 {main} thrown in /Applications/MAMP/htdocs/ijdb_pdo/config.php on line 24
두 번째 옵션에서 다음과 같은 오류가 발생했습니다.
againtestConnection failed: SQLSTATE[HY000] [2002] Operation timed out
내 코드가 어수선합니까?
내가 가진 단자를 통해 연결 한 후 시도 :MacBook-Pro-3:/ sohail$ /Applications/MAMP/Library/bin/mysql -h "xx.xxx.xxx.xx" -u "xxxxxx" "-pxxxxxxx" "xxxxxxx";
다음과 같은 오류 있어요 :
Warning: Using a password on the command line interface can be insecure. ERROR 2003 (HY000): Can't connect to MySQL server on 'xx.xxx.xxx.xx' (60) MacBook-Pro-3:/ sohail$
나는 내 원격 컴퓨터에 터미널 접속이 생각하지 않습니다를, 그래서 'PORT'와 같이 SHOW GLOBAL 변수를 사용할 수 없습니다. cmd -thanks
MySQL이 서버에서 다른 포트 번호를 사용하고있을 가능성이 있습니까? – Difster
포트 번호가 존재하는지 어떻게 알 수 있습니까? 나는 서버에서 phpMyAdmin을 실행하고있다. mysqlWorkbench에서 로컬로 작업 중이며 원격 연결을 만들 수 없었습니다. 그 이유가 무엇일까요? – user2371684
서버에 명령 줄 액세스 권한이있는 경우 mysql 명령 줄에 로그인하고 다음을 입력합니다. show variables; 포트 번호가 입력됩니다. – Difster