Как исправить "Illuminate \ Database \ QueryException: SQLSTATE [HY000] [1044] Доступ запрещен для пользователя"

Пробовал запустить: php artisan migrate

Также для подключения к MySQL с помощью Xampp в Windows.

Я получил эту ошибку:

Illuminate\Database\QueryException  : SQLSTATE[HY000] [1044] Access
denied for user ''@'localhost' to database 'homestead' (SQL: select *
from information_schema.tables where table_schema = homestead and
table_name = migrations)

  at
C:\Users\harsh\Laravel1\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|  Exception trace:

  1   PDOException::("SQLSTATE[HY000] [1044] Access denied for user
''@'localhost' to database 'homestead'")
      C:\Users\harsh\Laravel1\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

  2  
PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=homestead",
"homestead", "", [])
      C:\Users\harsh\Laravel1\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

  Please use the argument -v to see more details.

.env файл:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=homestead 
DB_USERNAME=homestead 
DB_PASSWORD=

Задайте имя пользователя базы данных в файле .env. и запустите php artisan cache:clear с консоли внутри корня вашего проекта.

Hilmi Erdem KEREN 10.01.2019 09:10

Что в ваших файлах config/database.php и .env? (не забывайте удалять пароли!)

Jerodev 10.01.2019 09:13

@Jerodev Я удалил пароли и отредактировал другие детали .env, но проблема все еще не решена.

harshit 10.01.2019 09:25

@HilmiErdemKEREN Я добавил сведения о подключении .env, но ничего не исправляет, посмотрите, что не так.

harshit 10.01.2019 09:27

Вы действительно создали базу данных и пользователя с именем homestead?

Jerodev 10.01.2019 09:32

Вы действительно используете усадьбу? Если да, вы удалили пароль? Пароль по умолчанию - secret.

Hilmi Erdem KEREN 10.01.2019 09:35

Спасибо, ребята, за ваше время, проблема решена. См. Ответ ниже. :)

harshit 10.01.2019 10:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
9
7
73 878
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Ответ принят как подходящий

Откройте файл .env и отредактируйте его. Просто установите правильные учетные данные БД:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=            // Your Database Name
DB_USERNAME=           // Yout Database Username
DB_PASSWORD=          // Your Database Password 

Для DB_USERNAME следует установить значение root, если у вас нет значения имя пользователя по умолчанию при установке MySQL в xampp.

Если в базе данных не установлен пароль, очистите его DB_PASSWORD, пустое место также необходимо удалить (в прошлом я также сталкивался с этой проблемой, окно рассматривает пустое пространство как пароль)

После завершения редактирования .env введите эту команду в своем терминале для очистки кеша:

php artisan config:cache

Привет, это помогло, но теперь появляется сообщение «Illuminate \ Database \ QueryException: ошибка синтаксиса или нарушение прав доступа: 1071 Указанный ключ слишком длинный; максимальная длина ключа составляет 767 байт (SQL: изменить таблицу users, добавить уникальный users_email_unique (email))» Пожалуйста расскажите исправление и для этого.

harshit 10.01.2019 10:41

@indiadevelop: Отредактируйте файл app/Providers/AppServiceProvider.php и внутри метода boot () установите длину строки по умолчанию: use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); }

Udhav Sarvaiya 10.01.2019 10:43

Теперь он говорит: «Illuminate \ Database \ QueryException: SQLSTATE [42S01]: базовая таблица или представление уже существует: 1050 Таблица« пользователи »уже существует (SQL: создать таблицу users (id int unsigned not null первичный ключ auto_increment, name varchar (191) not null, email varchar (191) not null, email_verified_at timestamp null, password varchar (191) not null, remember_token varchar (100) null, created_at timestamp null, updated_at timestamp null) набор символов по умолчанию utf8mb4 collate 'utf8mb4_unicode_ci') "

harshit 10.01.2019 10:48

@indiade develop Вам необходимо удалить (если есть) таблицу users table и password_resets из базы данных, а также записи удалить пользователей и password_resets из таблицы migrations.

Udhav Sarvaiya 10.01.2019 10:49

почему он req root, лучше опишите требуемый превил

Adi Prasetyo 24.02.2021 14:18

Привет, перейдите к xampp phpmyadmin, создайте базу данных, например стек, и измените свой .env на это:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=stack
DB_USERNAME=root 
DB_PASSWORD=

по умолчанию имя пользователя phpmyadmin - root и без пароля сохраните и попробуйте php artisan migrate

Спасибо за ваше время, проблема была решена. Просмотрите принятый ответ и прокомментируйте его обсуждение. :)

harshit 10.01.2019 10:58

Вы должны попробовать это:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=your database name 
DB_USERNAME= your localhost-database username (i.e `root`)
DB_PASSWORD= your localhost-database password (i.e `root`)

затем вы запускаете команду ниже

php artisan config:cache
php artisan cache:clear 
php artisan migrate

Спасибо за ваше время, проблема была решена. Просмотрите принятый ответ и прокомментируйте его обсуждение. :)

harshit 10.01.2019 10:57

Попробуйте это в своем терминале: Чтобы запустить XMAPP, используйте

sudo /opt/lampp/lampp start

Консольный вывод должен быть

Starting XAMPP for Linux 7.4.8-0...
XAMPP: Starting Apache...fail.
XAMPP: Another web server is already running.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.

Когда вы получаете сообщение об ошибке

error: /opt/lampp/bin/mysql.server: 264: kill: No such process**

попробуйте еще раз в своем терминале:

sudo service mysql stop
sudo service apache2 stop

Затем откройте базу данных после переноса файла.

Попробуйте это, перейдите в свой файл .env, измените имя базы данных. Зайдите в свой phpmyadmin, создайте новую базу данных с новым именем в вашем файле .env.

Затем запустите php artisan migrate

Я застрял с той же ошибкой, пока не изменил DB_PORT и не установил значение из MAMP

Поменял БД ПОРТ на какой? Какое значение установить из MAMP? Пожалуйста, будьте более информативными в своих ответах в будущем, ответах, которые представляют ценность для читателей.

Muhammad Hamza 02.11.2020 07:15
you fix file .env Pay attention to the password section 'password'
 +need to have '
 
 DB_CONNECTION=mysql 
 DB_HOST=127.0.0.1 
 DB_PORT=3306 
 DB_DATABASE=            // Your Database Name
 DB_USERNAME=           // Yout Database Username
 DB_PASSWORD=          // Your Database Password 
 

Не могли бы вы отредактировать свой ответ, удалив строки enter code here?

Ahx 07.02.2021 17:01

Пожалуйста, поделитесь более подробной информацией - мне кажется, что это уже ответ, данный два года назад.

Nico Haase 26.02.2021 17:06

Я использую MacOS и MAMP

Я попробовал вышеуказанные предложения, но не смог их решить.

Для меня это решило переход с PHP 7.x на 8.0.x в MAMP.

Для пользователей Mac, использующих MAMP, если принятого ответа было недостаточно для решения этой проблемы, как и я, добавьте socket в файл .env.

DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
//or
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

Переменная должна соответствовать настройке на config > database.php. Ищите connections > mysql > unix_socket

Другие вопросы по теме