#php #mysql #pdo #connection #nette
#php #mysql #pdo #подключение #nette
Вопрос:
У меня возникла проблема, когда я хотел разместить веб-сайт на хостинге. Я использую nette, и когда я хочу подключиться, я получаю сообщение об ошибке
PDO::__construct(): преждевременный конец данных (mysqlnd_wireprotocol.c:553)
Я использую nette framework с этой конфигурацией db:
dsn: 'mysql:host=dbhost;dbname=dbtable'
user: dbuser
password: dbpass
Когда я попробовал классическое подключение, оно работает правильно. Я не уверен, что делать и как это решить.
if($myslConnection = mysql_connect("dbhost", "dbuser", "dbpass")){
echo("connected");
mysql_select_db("dbtable",$myslConnection);
$result = mysql_query("SELECT * FROM news", $myslConnection);
while($resultItem = MySQL_Fetch_Row($result)){
echo $resultItem[1]."<br>";
}
}
else{
exit("not connected");
}
редактировать: ошибка, которую я получил
Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in /var/www/html/unix/i/y/domainname.noveranet.cz/www/info.php on line 5
Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in /var/www/html/unix/i/y/domainname.noveranet.cz/www/info.php on line 5
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1 using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file' in /var/www/html/unix/i/y/domainname.noveranet.cz/www/info.php:5 Stack trace: #0 /var/www/html/unix/i/y/domainname.noveranet.cz/www/info.php(5): PDO->__construct('mysql:host=tran...', 'user', 'pass') #1 {main} thrown in /var/www/html/unix/i/y/domainname.noveranet.cz/www/info.php on line 5
Комментарии:
1. Очевидно, что это проблема с вашей конкретной хостинговой компанией, и только их техническая поддержка может помочь. Удачи.
2. какую точную ошибку вы получаете? Хостинговые компании предоставляют очень мало одновременных подключений к базе данных (не более 5). Таким образом, вы можете отладить код, который вы используете для получения соединения.
3. точная ошибка при редактировании. Я попытался вызвать set password, но это не помогло. Чтобы отредактировать флаг в my.cnf, я должен спросить своего хостинг-провайдера?
4. проблема решена провайдером.. спасибо за помощь