Доступ запрещен для пользователя "root" @ " localhost "(используя пароль: Да) - нет привилегий?
Я постоянно получаю эту ошибку.
Я использую MySQL Workbench, и из того, что я нахожу, является то, что привилегии схемы root равны нулю. Нет никаких привилегий.
У меня проблемы на разных платформах, для которых используется мой сервер, и это была внезапная проблема.
root@127.0.0.1 по-видимому, имеет доступ, но я вошел в систему, но он просто назначает localhost в любом случае-localhost не имеет привилегий.
Я сделал несколько вещей, таких как флеш-хосты, флеш-привилегии, ect но не нашли успеха ни в этом, ни в интернете.
Как я могу получить root его доступ обратно? Меня это расстраивает, потому что, когда я смотрю вокруг, люди ожидают, что у вас "есть доступ", но у меня нет доступа, поэтому я не могу войти в командную строку или что-то еще и предоставить себе что-либо.
при запуске показать гранты для root это то, что я получаю взамен: код ошибки: 1141. Нет такого гранта определено для пользователя "root" на хосте"%"
спасибо всем, кто может оказать помощь
14 ответов
использовать инструкции по сбросу пароля root - но вместо сброса пароля root мы будем насильственно вставлять запись в mysql.таблица пользователя
в файле init используйте это вместо
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
попробуйте выполнить следующие команды
~$ sudo /etc/init.d/mysql stop
~$ sudo mysqld_safe --skip-grant-tables &
~$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> use mysql;
mysql> update user set password=PASSWORD("root") where User='root';
mysql> flush privileges;
mysql> quit
~$ sudo /etc/init.d/mysql stop
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables
~$ sudo /etc/init.d/mysql start
~$ mysql -u root -p
* MySQL Community Server 5.6.35 is started
~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
для людей, которые сталкиваются с ошибкой ниже в версии mysql 5.7+ -
Access denied for user 'root'@'localhost' (using password: YES)
открыть новый терминал
sudo /etc/init.d/mysql stop
... MySQL Community Server 5.7.8-rc остановленsudo mysqld_safe --skip-grant-tables &
это пропустит все Привилегии уровня предоставления и запустит mysql в безопасном режиме Иногда процесс застопорился только из-за
grep: ошибка записи: сломанная труба 180102 11:32:28 mysqld_safe вход в ' /var/log/mysql / ошибка.бревно.
просто нажмите Ctrl+Z или Ctrl+C, чтобы прервать и выйти из процесса
mysql -u root
Добро пожаловать на монитор MySQL. Команды заканчиваются на ; или \g. Ваш идентификатор соединения MySQL - 2 Версия сервера: 5.7.8-rc MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle и/или ее филиалы. Все права защищены.
Oracle является зарегистрированной торговой маркой Oracle Корпорация и / или ее филиалы. Другие наименования могут быть товарными знаками их соответствующих владельцы.
введите "справка"; или "\h " для справки. Введите "\c", чтобы очистить текущий оператор ввода.
- в MySQL>
use mysql;
данные по таблицы чтения для завершения имен таблицы и столбца Вы можете отключить эту функцию, чтобы получить более быстрый запуск с
база данных изменена
mysql>
update user set authentication_string=password('password') where user='root';
Запрос OK, 4 ряды пострадавших, 1 предупреждение (0,03 сек) Совпадение строк: 4 изменено: 4 предупреждения: 1mysql>
flush privileges;
Запрос ОК, 0 затронутых строк (0.00 сек)mysql>
quit
Пока!--11-->sudo /etc/init.d/mysql stop
..180102 11:37: 12 mysqld_safe mysqld из pid-файла /var/run/mysqld/mysqld.пид закончилась . * MySQL Community Server 5.7.8-rc остановлен Ариф@в Ubuntu:~$ судо /и т. д./init.D / mysql запуск .. * В MySQL Запущен сервер сообщества 5.7.8-rc
-
mysql -u root -p
введите пароль:
Добро пожаловать на монитор MySQL. Команды заканчиваются на ; или \g. Ваш идентификатор соединения MySQL - 2 Версия сервера: 5.7.8-rc MySQL Community Server (GPL)
после версии mysql 5.7+ пароль столбца заменен именем authentication_string из mysql.пользовательская таблица.
надеюсь, что эти шаги помогут никому, спасибо.
простой способ сбросить пароль root в Linux :
sudo dpkg-reconfigure mysql-server-5.5
проверка некоторых других причин отказа в доступе:
https://dev.mysql.com/doc/refman/5.7/en/problems-connecting.html
ну самый простой способ сбросить пароль root:
перезапустить mysqld --skip-grant-tables option. Это позволяет любому подключиться без пароля и со всеми привилегиями. Потому что это небезопасно, вы можете использовать --skip-grant-tables в сочетании с --skip-networking для предотвращения подключения удаленных клиентов.
подключение к серверу mysqld с помощью этой команды:
раковины> mysql выдает следующие операторы в клиенте mysql. Замените пароль паролем, который вы хотите использовать.
mysql> обновить mysql.пароль пользователя=пароль ('MyNewPass') - >Где пользователь= 'root'; mysql> привилегии FLUSH;
остановите сервер, затем перезапустите его нормально (без --skip-grant-tables и --skip-networking options).
исходная документация Mysql и личный опыт:
http://dev.mysql.com/doc/refman/5.6/en/resetting-permissions.html
Я работал над доступом, запрещенным для пользователя "root" @ "localhost" (используя пароль: да) в течение нескольких часов, я нашел следующее решение,
The answer to this problem was that in the my.cnf located within
/etc/mysql/my.cnf
the line was either
bind-address = 127.0.0.1
(or)
bind-address = localhost
(or)
bind-address = 0.0.0.0
I should prefer that 127.0.0.1
I should also prefer 0.0.0.0, it is more flexible
because which will allow all connections
для вышеуказанной проблемы пароль ur в системе должен совпадать с паролем, который u передал в программе, потому что при запуске программы он проверяет пароль системы, поскольку u дал root как пользователь, поэтому дает u ошибку, и в то же время запись не удаляется из базы данных.
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
class Delete
{
public static void main(String []k)
{
String url="jdbc:mysql://localhost:3306/student";
String user="root";
String pass="jacob234";
try
{
Connection myConnection=DriverManager.getConnection(url,user,pass);
Statement myStatement=myConnection.createStatement();
String deleteQuery="delete from students where id=2";
myStatement.executeUpdate(deleteQuery);
System.out.println("delete completed");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
сохраните системный пароль ur как jacob234, а затем запустите код.
попробуйте следующие шаги, чтобы преодолеть эту проблему:
- откройте терминал / командную строку и перейдите к папке bin папки установки MySQL. Затем выполните команду
mysqld --console
. - если вы видите эту строку
171010 14:58:22 [Note] --secure-file-priv
имеет значение NULL. Операции, связанные с импортом и экспортом данных, отключаются после выполнения вышеуказанной команды из командной строки. - тогда вам нужно проверить, что
mysqld
либо заблокирован Брандмауэр Windows или другая программа. - если он заблокирован брандмауэром Windows, необходимо разблокировать его и сохранить настройки.
- разблокировать
mysqld
илиmysql
application, выполните следующие действия:- перейдите в командную строку и введите
wf.msc
открыть настройки брандмауэра. - нажмите Разрешить приложение или функцию через Брандмауэр Windows.
- Регистрация
mysqld
илиmysqld
экземпляры доступны в списке и проверить установите флажок для домена, public и private и сохраните настройки.
- перейдите в командную строку и введите
- вернитесь в папку bin и повторите попытку с шага 1.
- он должен работать нормально и не показывать никаких ошибок.
теперь должно быть возможно запустить консоль MySQL без каких-либо проблем!
Я решил ту же проблему, используя следующий sql и перезапуск сервера MySQL:
update mysql.user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y'
where user='root';
Я не думаю, что вы должны бежать :
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\mysql-init.txt
должно быть:
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\mysql-init.txt
Я решил ту же проблему, запустив Workbench как администратор.
...Я думаю, это из-за ограничений на компьютеры компании, в моем случае...
я столкнулся с этой проблемой при установке Testlink на Ubuntu server, я выпал эти шаги
mysql -u root
use mysql;
update user set password=PASSWORD("root") where User='root';
flush privileges;
quit
теперь остановите экземпляр и начните снова i.e
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
в mysql 5.7 поле пароля было заменено на authentication_string, поэтому вы сделали бы что-то вроде этого вместо
update user set authentication_string=PASSWORD("root") where User='root';
ссылка MySQL user DB не имеет столбцов паролей-установка MySQL на OSX