SQLSTATE [28000] [1045] Доступ запрещен для пользователя 'root' - PullRequest
0 голосов
/ 27 октября 2018

Мой проект готов, и я только что загрузил его на сервер общего хостинга.Все отлично работает на моем локальном компьютере, но на странице отображается ошибка: «SQLSTATE [28000] [1045] Доступ запрещен для пользователя« root »@« localhost »(с использованием пароля: НЕТ)»

У меня естьпроверил мой пароль и имя пользователя и они оба верны.Требования к серверу так же, как у меня уже есть 2 других сайта Laravel, работающих с тем же хостом.

Я выполнил настройку php artisan: кеш php, кэш artisan: очистить, но без прогресса.

Что можетбыть причиной этого и как я могу решить это?Я искренне нуждаюсь в решениях, потому что теперь я не сплю ночами.

Ответы [ 4 ]

0 голосов
/ 28 октября 2018

Каждый раз, когда вы развертываете проект, вы, как правило, должны запускать команду php artisan config: cache как часть вашей производственной процедуры развертывания. Я предлагаю вам

  1. Удалить файл кэша конфигурации
  2. очистить кеш приложения
  3. Создать файл кэша для более быстрой загрузки конфигурации

Для этого выполните следующие команды Artisan в командной строке

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

Если у вас нет доступа к командной строке на вашем сервере, вы можете программно выполнять команды, добавляя к вашим маршрутам следующее:

Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('config:clear');
    $exitCode = Artisan::call('cache:clear');
    $exitCode = Artisan::call('config:cache');
    return 'DONE'; //Return anything
});

А затем вызовите маршрут очистки кэша из вашего браузера.

0 голосов
/ 27 октября 2018

попробуйте с этими 3 командами ремесленника.

1) php artisan config:clear

2) php artisan cache:clear

3) php artisan config:cache

0 голосов
/ 28 октября 2018

Откройте терминал и введите

sudo mysql -u root -p

Он подскажет вам в mysql, здесь вы можете запустить любые команды mysql.

Используйте таблицу mysql для изменения типа таблицы, поэтому мы можем использовать пустойпароль.Ниже приводится команда для него

USE mysql;

Теперь мы изменим тип таблицы, выполнив команду

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

, теперь мы должны сбросить привилегии, потому что мы использовали UPDATE.Если вы используете INSERT, UPDATE или DELETE для таблиц грантов напрямую, вам необходимо использовать FLUSH PRIVILEGES для перезагрузки таблиц грантов.

FLUSH PRIVILEGES;

теперь выйдите из mysql, выполнив следующую команду

exit;

Теперь перезапустите сервер MySQL, выполнив следующую команду

service mysql restart

Надеюсь, это поможет

Спасибо.

0 голосов
/ 27 октября 2018

другой конфиг? он говорит, что ваш пароль пуст;)

«Я проверил свой пароль и имя пользователя»

"(используя пароль: НЕТ)"

приложение / Config / database.php:

    'mysql' => array(
    'read' => array(
        'host' => '192.168.1.1',
    ),
    'write' => array(
        'host' => '196.168.1.2'
    ),
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => '<insert password here?>',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...