我遇到了問題。
我嘗試使用此密碼連接到我的MySQL數據庫:
Test12&@_#+.:-;}][{$%!/()?
,*'「`<>
public function __construct() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['dbName'])) {
$this->dbName = $_POST['dbName'];
}
if (isset($_POST['dbUser'])) {
$this->dbUser = $_POST['dbUser'];
}
if (isset($_POST['dbPass'])) {
$this->dbPass = $_POST['dbPass'];
}
}
}
public function connectToDatabase() {
try {
$dsn = 'mysql:dbname=' . $this->dbName . ';host=' . $this->dbHost . ';charset=utf8';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
);
$dbh = new PDO($dsn, $this->dbUser, $this->dbPass, $options);
$this->isConnected = TRUE;
} catch (PDOException $e) {
echo $e->getMessage();
$this->isConnected = FALSE;
}
}
我總是得到消息:
SQLSTATE [HY000] [1045]拒絕用戶'web3_10'@'localhost'的訪問(使用密碼:是)
我認爲這是因爲我的矯枉過正的密碼。
我如何得到這個工作?
接下來我要導入一個轉儲與此:
public function importDatabase($dbTarget) {
$stmt = 'mysql --host=' . $this->dbHost . ' --user=' . $this->dbUser . ' --password=' . $this->dbPass . ' ' . $this->dbName . ' ' . '<' . ' ' . $dbTarget;
var_dump($stmt);
exec($stmt, $output, $return);
if (!$return) {
$this->dbImported = TRUE;
}
}
同樣的問題在這裏。沒有用這個密碼輸入。
我該如何解決這個問題?
...我不確定您希望我們能夠做什麼,您使用了錯誤的密碼/並且或者您的用戶無權訪問您嘗試連接的表/數據庫,對此我們無能爲力。 – Epodax
您是否檢查過您的密碼字符串中是否包含您期望它包含的內容?由於您使用的是單引號和雙引號,例如'$'符號,因此如何分配它非常重要。 – jeroen
你在哪裏定義了密碼*在你的代碼*?你有沒有正確地逃脫它?你可以通過mysql-console用你的密碼登錄嗎?如果你將你的密碼設置爲不同的東西,你可以使用你的代碼嗎? –