Intereting Posts
CakePHP 3 – Как использовать Trim () перед проверкой NotEmpty? Как добавить атрибуты с помощью codeigniter form helper Написание приложения для чата Сопоставьте 2 столбца sql if =, затем обновите другой столбец на 1 После входа в систему, должны ли все страницы быть https? Фильтр ошибок в PHP? Как использовать CSV MIME-тип? Перенаправление на страницу / URL-адрес после нажатия кнопки оповещения Получить объект JSON из URL-адреса Верните объект JSON, используя PHP json_encode () и MySQL, чтобы перейти к функции jQuery Значение операции для нескольких массивов, имеющих один и тот же ключ Почему я получаю «не могу изменить заголовки заголовков заголовков, уже отправленных с помощью registration_model» в codeigniter? Возврат случайного значения из массива с вероятностью, пропорциональной его значению Запрос Ajax в среде prod вызывает отказ в доступе (пользователь не прошел полную проверку подлинности) php Объект класса DateInterval не может быть преобразован в строку

Ошибка «Преждевременный конец данных» с PHP

Я только начал использовать WAMP для проекта PHP, и я получаю следующие ошибки, связанные с этой строкой кода:

$link=mysql_connect("localhost","myuser","mypas"); 

Я прочитал, что мне пришлось снова выполнить ПАРОЛЬ SET с моим старым паролем, но он все равно не работает после перезапуска всех служб. Я использую PHP 5.3.4 и MySQL 5.1.53 Любая помощь? БЛАГОДАРЯ

 Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:554) in C:\wamp\www\CDE\includes\baseDatos.php on line 5 Call Stack 1 0.0002 667312 {main}( ) ..\index.php:0 2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 ( ! ) Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in C:\wamp\www\CDE\includes\baseDatos.php on line 5 Call Stack 1 0.0002 667312 {main}( ) ..\index.php:0 2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 ( ! ) Warning: mysql_connect() [function.mysql-connect]: 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 C:\wamp\www\CDE\includes\baseDatos.php on line 5 Call Stack 1 0.0002 667312 {main}( ) ..\index.php:0 2 0.0008 682416 include( 'C:\wamp\www\CDE\includes\seguridad.php' ) ..\index.php:2 3 0.0010 690984 include( 'C:\wamp\www\CDE\includes\baseDatos.php' ) ..\seguridad.php:2 4 0.0014 692368 mysql_connect ( ) ..\baseDatos.php:5 

У меня была такая же проблема, и я исправил ее с помощью запроса UPDATE:

 UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user'; 

Не знаю, почему, но пароль SET не работает.

Чтобы быть уверенным, что проблема в том, что я думаю, вы должны сделать этот запрос в базе данных mysql:

 SELECT `user`.`Password` FROM `user` WHERE `user`.`User` = 'youruser' AND `user`.`Host` = 'yourhost' 

если пароль не начинается с *, проблема в том, что у вас все еще есть старая подписка

EDIT _ Вот php-функция для создания действительного пароля для MYSQL (взята отсюда ):

 function mysql_41_password($in) { $p=sha1($in,true); $p=sha1($p); return "*".strtoupper($p); } 

Вы можете установить пароль вручную:

 //newpwd is the passowr dgenerated in php UPDATE mysql.user SET Password = 'newpwd' WHERE Host = 'some_host' AND User = 'some_user'; FLUSH PRIVILEGES; 

Вышеупомянутая проблема возникает из-за совместимости версий между PHP и MySQL. В основном это может произойти во время удаленного доступа к db.

Просьба проверить ваши версии PHP и MySQL.

Моей версией являются PHP-5.3.6 (локальная машина) и MySQL 5.1.56 (Live DB).

Мой MySQL размещен в реальном домене, и я сохранил свои PHP-файлы на локальной машине. Я столкнулся с такой же проблемой для паролей.

Затем я заменил свой XAMPP более старой версией, изменив мою версию PHP на 5.3.0. Теперь проблема была решена, и я могу получить доступ к live db из локального.

Если вы используете MySQL 4.1 + Попробуйте это

В командной строке MySQL

mysql> set old_passwords = 0; mysql> set password for 'user'@'some.host.domain' = PASSWORD('new_pass'); mysql> set old_passwords = 1;

То, что вы подключаетесь к localhost, предполагает, что у вас, вероятно, нет сетевых проблем.

Первый хит в Google содержит 2 возможных причины / средства защиты.

Это сообщение появляется, когда вы используете PHP 5.3 … с базой данных MySQL, которая предназначена для использования с PHP 5.2. Я заметил, что когда я перешел на другую версию Uniform Server.

Если у вас нет доступа к базе данных и в основном используется это удаленное соединение для целей разработки (например, я), решение для этого состоит в том, чтобы иметь конфигурации с двумя версиями PHP (в настоящее время последний Uniform Server с PHP 5.2 … появляется быть 5.6b-Nano с PHP 5.2.13).