$ ./mysqladmin -u root -p ' redacted '
Введите пароль:
mysqladmin: ошибка подключения к серверу при локальном хосте: ошибка:
«Отказано в доступе для пользователя root» @ «localhost» (с использованием пароля: ДА)
Как я могу это исправить?
mysql
sql
database
database-connection
Суровый Триведи
источник
источник
~/.my.cnf
файл.-p
опцию отдельно, и MySQL запросит пароль.Ответы:
/etc/my.cnf
или/etc/mysql/my.cnf
, в зависимости от вашего дистрибутива.skip-grant-tables
под[mysqld]
mysql -u root -p
mysql> flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
mysql -u root -p
источник
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 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Я сделал это после шага 5. Вот как выглядел вывод моей командной строки:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
sudo systemctl restart mariadb
Все решения, которые я нашел, были намного сложнее, чем необходимо, и ни одно из них не помогло мне. Вот решение, которое решило мою проблему. Нет необходимости перезапускать mysqld или запускать его с особыми привилегиями.
С помощью одного запроса мы меняем auth_plugin на mysql_native_password и устанавливаем пароль root как root (смело меняйте его в запросе)
Теперь вы должны иметь возможность войти в систему с правами root. Более подробную информацию можно найти в документации MySQL
(выйдите из консоли mysql с помощью Ctrl + D или наберите exit )
источник
Я попытался много шагов, чтобы исправить эту проблему. Существует так много источников возможных решений этой проблемы, что трудно отфильтровать смысл от бессмыслицы. Я наконец нашел хорошее решение здесь :
Шаг 1: Определите версию базы данных
Вы увидите некоторые результаты, как это с MySQL:
Или вывод, как это для MariaDB:
Запишите, какая база данных и какая у вас версия, так как вы будете использовать их позже. Затем вам нужно остановить базу данных, чтобы вы могли получить к ней доступ вручную.
Шаг 2. Остановка сервера базы данных
Чтобы сменить пароль пользователя root, вам необходимо заранее выключить сервер базы данных.
Вы можете сделать это для MySQL с:
И для MariaDB с:
Шаг 3. Перезапуск сервера базы данных без проверки разрешений.
Если вы запустите MySQL и MariaDB без загрузки информации о пользовательских привилегиях, это позволит вам получить доступ к командной строке базы данных с правами суперпользователя без предоставления пароля. Это позволит вам получить доступ к базе данных, не зная об этом.
Для этого вам нужно запретить базе данных загружать таблицы грантов, в которых хранится информация о привилегиях пользователя. Поскольку это немного угрожает безопасности, вам также следует пропустить сеть, чтобы предотвратить подключение других клиентов.
Запустите базу данных, не загружая таблицы грантов и не включая сеть:
Амперсанд в конце этой команды заставит этот процесс работать в фоновом режиме, чтобы вы могли продолжать использовать свой терминал.
Теперь вы можете подключиться к базе данных как пользователь root, который не должен запрашивать пароль.
Вместо этого вы сразу увидите приглашение оболочки базы данных.
MySQL Prompt
MariaDB Prompt
Теперь, когда у вас есть root-доступ, вы можете изменить пароль root.
Шаг 4: Изменение корневого пароля
Теперь мы можем изменить пароль root.
Для MySQL 5.7.6 и новее, а также MariaDB 10.1.20 и новее используйте следующую команду:
Для MySQL 5.7.5 и старше, а также MariaDB 10.1.20 и старше используйте:
Обязательно замените
new_password
ваш новый пароль на ваш выбор.Примечание: если
ALTER USER
команда не работает, это обычно указывает на более серьезную проблему. ОднакоUPDATE ... SET
вместо этого вы можете попытаться сбросить пароль root.[ВАЖНО] Это конкретная строка, которая исправила мою конкретную проблему:
Не забудьте перезагрузить таблицы грантов после этого.
В любом случае вы должны увидеть подтверждение того, что команда была успешно выполнена.
Пароль был изменен, поэтому теперь вы можете остановить ручной экземпляр сервера базы данных и перезапустить его, как это было раньше.
Шаг 5: Перезагрузите сервер базы данных в обычном режиме
Учебное пособие включает дальнейшие шаги для перезапуска базы данных, но единственная часть, которую я использовал, была следующей:
Для MySQL используйте: $ sudo systemctl start mysql
Для MariaDB используйте:
Теперь вы можете подтвердить, что новый пароль был введен правильно, запустив:
Теперь команда должна запросить вновь назначенный пароль. Введите его, и вы должны получить доступ к приглашению базы данных, как и ожидалось.
Вывод
Теперь у вас восстановлен административный доступ к серверу MySQL или MariaDB. Убедитесь, что выбранный вами новый пароль root является надежным и надежным, и храните его в надежном месте.
источник
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
была таким спасителем жизни для меня!Ни один из приведенных выше ответов не помог мне с этой проблемой, поэтому вот решение, которое я нашел .
Соответствующая часть:
источник
Для пользователей Ubuntu / Debian
( может работать на других дистрибутивах, особенно на основе Debian)
Запустите следующее для подключения как
root
(без пароля)Если вы не хотите добавлять
--defaults-file
каждый раз, когда хотите подключиться какroot
, вы можете скопировать/etc/mysql/debian.cnf
в свой домашний каталог:а потом:
источник
Перепробовав ответы на все остальные вопросы, вот что у меня наконец получилось
Я нашел ответ в этом посте: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06
источник
skip-grant-table
(my.conf или inmysql
command), не работали. Я мог войти в учетную запись службы ( askubuntu.com/a/120769/169836 ), ноUPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';
не работал. Только когда при использовании части плагина все заработало. Спасибо ~Для новых пользователей Linux это может быть сложной задачей. Позвольте мне обновить это с помощью mysql 8 (последняя доступная на данный момент версия - 8.0.12 от 12 сентября 2018 года)
Вот и все.
источник
В своей рабочей среде MySQL вы можете перейти на левую боковую панель, в разделе «Управление» выбрать «Пользователи и привилегии», щелкнуть «root» в разделе «Учетные записи пользователей», в правой части нажать вкладку «Ограничения учетной записи», чтобы увеличить максимальное количество запросов, обновлений и т. Д., И затем нажмите вкладку «Административные роли» и установите флажки, чтобы предоставить учетной записи доступ. Надеюсь, это поможет!
источник
Я сделал это, чтобы установить мой пароль root в начальной настройке MySQL в OSx. Откройте терминал.
Закройте терминал и откройте новый терминал. И в Linux работают следующие, чтобы установить пароль root.
(sudo mysqld_safe --skip-grant-tables: Это не сработало для меня в первый раз. Но вторая попытка оказалась успешной.)
Затем войдите в MySQL
Теперь измените пароль:
Перезапустите MySQL:
источник
В моем случае под Debian 10 ошибка
был решен (ХОРОШИЙ СПОСОБ)
ПЛОХОЙ СПОСОБ:
источник
Тьфу - ничего не работает для меня! У меня есть машина CentOS 7.4 под управлением mariadb 5.5.64.
Я должен был сделать это сразу после установки mariadb из yum;
mysql_secure_installation
проведет вас через ряд шагов, включая «Установить пароль root? [Y / n]». Просто скажите «у» и введите пароль. Ответьте на другие вопросы, как вы хотите.Тогда вы можете войти с паролем, используя
Это выживет
Ключ
Затем я проверил
/bin/mysql_secure_installation
исходный код, чтобы выяснить, как он мог волшебным образом изменить пароль root, и ни один из других ответов здесь не смог. Бит импорта:... это говорит
SET Password=...
и нетSET authentication_string = PASSWORD...
. Итак, правильная процедура для этой версии (5.5.64):Из приглашения mysql>:
убить работающий mysqld_safe. перезапустите mariadb. Войдите в систему как пользователь root
mysql -u -p
. Используйте свой новый пароль.Если вы хотите, вы можете установить все корневые пароли одновременно. Я думаю, что это мудро
Это выполнит обновления всех корневых паролей: то есть для "localhost", "127.0.0.1" и ":: 1"
В будущем, когда я перейду на RHEL8 или что там у вас, я постараюсь не забыть проверить / bin / mysql_secure_installation и посмотреть, как это сделали ребята, которые и настроили mariadb для этой ОС.
источник
Если вы похожи на меня, и все вышеперечисленные предложения не сработали, перейдите к удалению всех версий mysql на вашем компьютере, найдите все оставшиеся файлы mysql с помощью этой команды
sudo find / -name "mysql"
иrm -rf
все файлы или каталоги с прикрепленным к нему именем mysql (вам следует пропустить связанные файлы в библиотеки языков программирования). Теперь установите свежую версию MySQL и наслаждайтесь. NB: Вы потеряете все свои данные, поэтому сначала взвесьте ваши варианты.источник
Это может произойти, если у вас недостаточно прав. Введите
su
, введите пароль пользователя root и повторите попытку.источник
Хорошо, я знаю, что это старая ветка, но если вы зашли на эту страницу через Google, как я, и ни одно из вышеперечисленных решений не сработало, ошибка оказалась на 100% глупостью с моей стороны. Я не подключился к серверу. После подключения все прошло гладко.
В случае, если это помогает узнать мои настройки, я использую Sequel Pro и пытаюсь подключиться к нему с помощью Node с помощью пакета NPM mysql. Я не думал, что мне нужно на самом деле подключаться (кроме запуска Sequel Pro), потому что я уже делал это из своего приложения.
источник
Решение: сдавайся!
Выслушайте меня, я потратил около двух дней, пытаясь заставить MySQL работать безрезультатно, всегда оставаясь с ошибками разрешения, ни одна из которых не была исправлена ответами в этой теме. Дошло до того, что я подумал, что если я продолжу, то сойду с ума.
Из терпения заставить его работать, я послал команду для установки SQLite, используя только 450 КБ, и она с самого начала работала идеально.
Если у вас нет терпения святого, используйте SQLite и сэкономьте много времени, усилий, боли и места для хранения ..!
источник