Невозможно перенести файлы в Laravel - PullRequest
0 голосов
/ 01 ноября 2019

Я не могу перенести файл в Laravel, используя PHP.

Я попытался изменить пароль по умолчанию и попытался просмотреть файл my.cnf. Я новичок в использовании Laravel, поэтому я не знаю, как действовать в плане устранения неполадок. Когда я задавал вопросы, мне сказали, что это потому, что Mysql 8.0 использует другой метод аутентификации соединения. Я считаю его caching_sha2_password новым значением по умолчанию.

Чтобы заставить его работать с Laravel, насколько я знаю, вам нужно

default_authentication_plugin=mysql_native_password

установить в вашем файле конфигурации MySQL. Я не уверен, где я должен поместить это, или если

, или вы можете установить флаг, используя утилиту командной строки SQL

mysqld --default-authentication-plugin=mysql_native_password
[*] - You can find out where the .cnf files are by running

mysqld --help --verbose

Когда я пытался перенести мою базу данных здесьполученное сообщение об ошибке:

Подсветка \ База данных \ QueryException: SQLSTATE [HY000] [2054] Сервер запросил метод аутентификации, неизвестный клиенту (SQL: select * from information_schema.tables, где table_schema = tutorialи table_name = migrations и table_type = 'BASE TABLE')

661 |// Если при попытке выполнить запрос возникает исключение, мы отформатируем ошибку 662 |// сообщение о включении привязок с SQL, что сделает это исключение 663 |// гораздо полезнее для разработчика, а не только ошибки базы данных. 664 |catch (исключение $ e) {

665 |бросить новое QueryException (666 | $ query, $ this-> prepareBindings ($ bindings), $ e 667 |);668 |} 669 |

Ответы [ 3 ]

0 голосов
/ 01 ноября 2019

Возможно, он кэшируется laravel, когда вы пытаетесь изменить конфигурацию .env

Выполнить php artisan cache:clear php artisan config:clear

0 голосов
/ 01 ноября 2019

Открыть вход в терминал / командную строку на ваш сервер mysql

sudo mysql

Я предполагаю, что вашим пользователем по умолчанию является root

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

Используйтетот же пароль в файле .env, затем выполните следующую команду, чтобы очистить кэш

php artisan cache:clear

ИЛИ

php artisan config:clear

Надеюсь, это решит вашу проблему.

0 голосов
/ 01 ноября 2019

проверьте файл .env, а затем исправьте его следующим образом:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_db_user_name
DB_PASSWORD=your_db_password

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

alter user 'username'@'localhost' identified with mysql_native_password by 'password'; would fix it.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...