Я запускаю Homestead через Vagrant для локальной установки Laravel. Я вошел в Homestead через SSH (бродяга SSH) и подключен к MySQL с помощью хоста локальный, пользователь приусадебных, пароль секрет. Мне удалось успешно подключиться и запустить базы данных ; говорит мне, что там есть база данных information_schema. Я думал, что все хорошо, и я мог бы создать новую базу данных для моего проекта Laravel и начать работу.Сбросить пароль MySQL на Homestead
К сожалению, эксплуатация CREATE DATABASE mynewdb; вернулся:
ERROR 1044 (42000): Доступ запрещен для пользователя 'усадьбы' @ 'локальный' в базу данных 'mynewdb'
Я пытался дать пользователю Homestead еще несколько привилегий через:
GRANT ALL PRIVILEGES ON mynewdb.* TO 'homestead'@'localhost' WITH GRANT OPTION;
Но получить обратно аналогичный доступ запрещен сообщение:
Access denied for user 'homestead'@'localhost' (using password: YES)
я попробовал несколько других вариантов этой команды, используя «%» вместо «локальный», например, , но похоже, что мой пользователь-хозяин просто не имеет привилегий, необходимых для полного администрирования этого db.
Я думал, что должен просто перезапустить службу mysql с флагом -skip-grant-tables, а затем войти в качестве усадьбы или root и иметь полные привилегии. Это также не работает:
[email protected]:~$ sudo /etc/init.d/mysql stop
[....] Stopping mysql (via systemctl): mysql.servic[.ok
[email protected]:~$ sudo /etc/init.d/mysql start --skip-grant-tables
[....] Starting mysql (via systemctl): mysql.servic[.ok
[email protected]:~$ mysql -h localhost
ERROR 1045 (28000): Access denied for user 'vagrant'@'localhost' (using password: NO)
[email protected]:~$ mysql -h localhost -u homestead
ERROR 1045 (28000): Access denied for user 'homestead'@'localhost' (using password: NO)
[email protected]:~$ mysql -h localhost -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
[email protected]:~$ mysql
ERROR 1045 (28000): Access denied for user 'vagrant'@'localhost' (using password: NO)
После этих попыток, я вошел в с усадьбой и тайны, просто чтобы проверить и посмотреть, если что-то изменилось:
[email protected]:~$ mysql -h localhost -u homestead -p
mysql> create database mynewdb;
ERROR 1044 (42000): Доступ запрещен для пользователя 'приусадебных @ «локальный» в базу данных «» mynewdb
Наконец, я заметил в моем файле homestead.yml, что есть запись, которая выглядит следующим образом:
databases:
- homestead
Я изменил эту запись:
databases:
- homestead
- mynewdb
А потом перезагрузил приусадебный VM:
vagrant halt
vagrant up
А потом снова попытался создать новый datbase с пользователем приусадебных MySQL. Ничто из этого не делало ничего, доступ все еще полностью отрицается, если пользователь усадьбы пытается что-то сделать.
Предложения по доступу?
Извините, я немного смущен. Создана ли база данных 'mynewdb'? Если нет, имеет ли пользователь усадьбы разрешение на создание новых баз данных? – Terminus
mynewdb еще не создан. Кажется, что у хозяина нет никаких прав на создание новых баз данных. Все, что я читаю в Интернете, говорит, что пользователь homestead должен приравниваться к root и иметь полные разрешения. Я предполагаю, что есть вероятность, что разрешения были перепутаны/перезаписаны в какой-то момент в прошлом. Все, что мне нужно сделать, это сбросить разрешения без доступа к учетной записи root. У меня есть серверный доступ к дому, поэтому я могу перезапустить MySQL, отключить его и т. Д. Как получить доступ без полной переустановки MySQL? – carbide20
Я добавил еще несколько вопросов о том, как я попытался перезапустить службу mysql с помощью -skip-grant-tables и не смог. – carbide20