#pdo #mariadb
#pdo #mariadb
Вопрос:
Большинство ответов заключались в том, что это была бы правильная проблема. Но я предполагаю, что не в этом случае, потому что mysql-соединение все еще работало.
Я пытаюсь подключиться к mariadb10, который находился на сервере в моей сети
Я пытаюсь подключиться со своего локального хостинга.
Если я попытаюсь в своем терминале:
myuser@mylocalComputer ~ $ mysql -h myserver -P 3307 -u mydbuser -pmyconfidentalpassword
все работает нормально!!
Но если я попытаюсь подключиться с помощью php scrypt с помощью pdo, я получу сообщение об ошибке:
<?php
$dsn = 'mysql: host=myserver:3307;dbname=mydbname';
$username = 'mydbuser';
$password = 'myconfidentalpassword';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$dbh = new PDO($dsn, $username, $password, $options);
if(! $dbh ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'select * from foo;';
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not select data: ' . mysql_error());
}
echo "Synced data successfullyn";
mysql_close($conn);
?>
Ошибка заключалась в:
Фатальная ошибка PHP: Неперехваченное исключение PDOException: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя ‘mydbuser’ @’localhost’ (с использованием пароля: ДА) в /home/myuser /Projekte/Hibiscus_extend/Hib_Nightly_sync.php:8
Трассировка стека:
/home/myuser/Projekte/Hibiscus_extend/Hib_Nightly_sync.php (8): PDO->__construct(‘mysql: host=myse…’, ‘mydbuser’, ‘myconfidentalpassword’, массив)
введено {main} /home/myuser/Projekte/Hibiscus_extend/Hib_Nightly_sync.php в строке 8
Что я сделал не так и где?
Ответ №1:
О, О, О!
Я нашел решение! Причиной проблемы с подключением были просто пустые места в $ dsn
Неверно:
$dsn = ‘mysql: host=myserver: 3307;dbname=mydbname’;
работает нормально
$dsn = ‘mysql: host=myserver: 3307;dbname=mydbname’;