За последний день или около того я не могу подключиться к базе данных через PHP. Вот как выглядит мой код, соединяющийся с базой данных
$con = mysqli_connect("localhost","root","password","database");
И вот странная ошибка.
PHP Предупреждение: mysqli_connect (): (HY000 / 1045): доступ запрещен для пользователя '@' localhost '(с использованием пароля: YES) в строке 2
Обычно я получаю эту ошибку, если учетные данные неверны, но я использовал графический интерфейс и проверял соединение с точными учетными данными, поэтому это означает, что это не проблема. Я только случайно начал эту ошибку и перезапустил свой компьютер, переустановил MySQL и перенастроил сервер. Я также попытался использовать 127.0.0.1
вместо localhost
Я нахожусь на localhost
поэтому у меня есть полный контроль над чем угодно, и я не сделал беспорядок с чем-либо, вызывающим эту проблему. Есть идеи?
По какой-то причине функция пытается подключиться с использованием «пользовательского» пользователя вместо «root».
Вы можете отладить дальнейшее добавление ссылки на ошибку:
$con= mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($con))
;
Возможно, проблема заключается в конфигурации сервера mysql.
Вы можете попытаться сменить пароль и после привилегий flush.
Затем перезапустите mysql!
Надеюсь это поможет! До свидания.
У меня была такая же проблема, как и название этого вопроса, так что если кто-то еще пойдет по этому вопросу и захочет запустить MySql в режиме «skip-grant-tables» в Windows, вот что я сделал.
Остановите службу MySQL через инструменты администратора, службы.
Измените конфигурационный файл my.ini (предполагая пути по умолчанию)
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
В разделе SERVER SECTION в разделе [mysqld] добавьте следующую строку:
skip-grant-tables
так что у вас есть
# SERVER SECTION # ---------------------------------------------------------------------- # #The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] skip-grant-tables
Запустите службу еще раз, и вы сможете войти в свою базу данных без пароля.