Сегодня я авторизовался как root в Ubuntu 14.04.1 LTS ll
а затем apt-get install mariadb-server
(без sudo, но с правами root).
С mySQL -h localhost -u root --password=<PW>
я получил
Доступ запрещен для пользователя 'root' @ 'localhost' (с паролем: ДА)
С mySQL -u root -p
Я вошел в БД и сделал
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Но это не помогло. Есть идеи? Я не нашел ответа на подобные вопросы.
Ответы:
TL; DR: чтобы получить доступ к более новым версиям mysql / mariadb после того, как вы являетесь пользователем root, после новой установки вам необходимо находиться в корневой оболочке (т.е.
sudo mysql -u root
илиmysql -u root
внутри оболочки, запущеннойsu -
илиsudo -i
первой)Только что выполнив такое же обновление на Ubuntu, у меня была такая же проблема.
Что было странно
Примет мой пароль и позволит мне его установить, но я не могу войти в систему как
root
черезmysql
клиентаМне пришлось начать мариадб с
чтобы получить доступ как root, в то время как все остальные пользователи могут получить доступ нормально.
Глядя на
mysql.user
таблицу, я заметил, что для rootplugin
столбец установлен на,unix_socket
тогда как для всех других пользователей он установлен на mysql_native_password. Беглый взгляд на эту страницу: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ объясняет, что Unix Socket позволяет входить в систему путем сопоставленияuid
процесса, запускающего клиента, с процессом пользователя вmysql.user
стол. Другими словами, чтобы получить доступ к mariadb,root
вы должны войти в систему как root.Разумеется, перезапуск моего демона mariadb с требуемой аутентификацией я могу войти в систему как root с
или
Сделав это, я подумал о том, как получить доступ без необходимости выполнять sudo, а это просто вопрос выполнения этих запросов mysql.
(замена
<password>
желаемый пароль root mysql). Это позволяет использовать пароль для входа в систему для пользователя root.В качестве альтернативы запустите запрос mysql:
Изменит учетную запись root на использование пароля для входа без изменения пароля, но это может оставить вас с установкой mysql / mariadb без пароля root.
После любого из этих действий вам необходимо перезапустить mysql / mariadb:
И вуаля у меня был доступ из личного кабинета через
mysql -u root -p
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, ЧТО ЭТО УМЕНЬШАЕТ БЕЗОПАСНОСТЬ. Предположительно, разработчики MariaDB выбрали такую работу с корневым доступом по уважительной причине.
Думая об этом, я вполне счастлив, что это произошло,
sudo mysql -u root -p
поэтому я возвращаюсь к этому, но я решил опубликовать свое решение, так как я не мог найти его в другом месте.источник
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
команду дважды, прежде чем сбрасывать приват?sudo service mysql restart
В чистом Ubuntu 16.04 LTS вход root MariaDB для localhost изменился со стиля пароля на стиль входа sudo ...
так что просто сделай
поскольку мы хотим войти в систему с паролем, создайте другого пользователя 'user'
в консоли MariaDB ... (вы попадаете в консоль MariaDB с помощью sudo mysql -u root)
затем в приглашении оболочки bash,
и вы можете войти в систему с помощью 'user' с 'yourpassword' на локальном хосте
источник
Попробуйте команду
нажмите ввод и назначьте новый пароль для root в mysql / mariadb .
Если вы получите сообщение об ошибке
включить службу с
теперь, если вы снова войдете с
если вы следите за проблемой, введите
sudo su
иmysql -u root -p
теперь примените разрешения для rootGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
это устранило мою проблему в MariaDB .
Удачи
источник
от суперпользователя принят ответ :
источник
Мне пришлось войти в Ubuntu как root, чтобы получить доступ к Mariadb как root. Это может иметь какое-то отношение к тому «Harden ...», которое он предлагает вам сделать при первой установке. Так:
и ты внутри.
источник
Новая команда для сброса привилегий:
FLUSH PRIVILEGES
Старая команда
FLUSH ALL PRIVILEGES
больше не работает.Вы получите сообщение об ошибке следующего вида:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
Надеюсь это поможет :)
источник
Запустите mysql_upgrade.
Проверь это
говорит
Убедитесь, что таблица существует _mysql.proxies_priv_.
Доступ запрещен для пользователя 'root' @ 'localhost' при попытке предоставить привилегии. Как мне предоставить привилегии?
источник
Такая система, как Ubuntu, предпочитает использовать плагин auth_socket . Он попытается аутентифицироваться, сравнивая ваше имя пользователя в БД и процесс, который делает запрос mysql; это описано здесь
Вместо этого вы можете вернуться с mysql_native_password , который потребует пользователя / пароля для аутентификации.
Что касается метода достижения этого, я рекомендую это .
источник