Подключение к базе данных mysql: PDO преждевременный конец данных

#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. проблема решена провайдером.. спасибо за помощь