я случайно изменил свои привилегии root, как это исправить?

#mysql #xampp

Вопрос:

поэтому я случайно изменил свои привилегии корневого пользователя, и я ничего не могу сделать прямо сейчас, база данных скрыта, потому что у меня нет глобальных привилегий,

уже попробуйте изменить какую-то строку в [mysqld] и добавить

skip-grant-tables

в моем.ini, но он не может снова изменить привилегию bac на обычную, просто скажите

ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

есть какое-нибудь решение моей проблемы ?

Комментарии:

1. какое утверждение не может быть выполнено?

2. его утверждение all приводит к тому, что корневой@localhost не имеет никаких привилегий ibb.co/3S2Vz6r

3. поэтому вам нужно запустить базу --skip-grant-tables данных и добавить их… когда вы получаете сообщение об ошибке ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement ?

4. да, это в xampp, как мне снова изменить этот грант на все ?

5. проверьте мой ответ и примите его, если он сработал.

Ответ №1:

Открыть C:xamppmysqlbinmy.ini (файл конфигурации MySQL)

Найдите строку [mysqld] и прямо под ней добавьте пропуск-предоставление-таблиц. Пример:

 # The MySQL server
[mysqld]
skip-grant-tables
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
[...etc...]
 

Это должно позволить вам получить доступ к MySQL, если вы не знаете свой пароль.

Остановите и запустите MySQL из XAMPP, чтобы это изменение вступило в силу.

Затем в командной строке подключитесь к MySQL:

 C:xamppmysqlbinmysql.exe --user=root
 

Затем выполните эти команды:

 UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
exit
 

Верните свой my.ini в нормальное состояние , удалив skip-grant-tables , перезагрузите сервер mysql.

Выполнено.

Комментарии:

1. разве это не проблема ? или должны быть перемены ? ibb.co/bvnHjrr грант не подлежит обновлению, и я хочу изменить или создать другого пользователя, это то же самое ibb.co/nbCKyhJ

2. Я не понимаю.

3. ты следовал моим стопам? вы должны делать это в командной строке, а не в phpMyAdmin

4. я делаю в командной строке проверку первой ссылки, которая доказывает, что я делаю это в командной строке

5. а вы раньше добавляли skip-grant-tables в ini-файл и перезапускали базу данных?

Ответ №2:

Я надеюсь, как вы говорите, что вы пробовали опцию —пропустить-предоставить-таблицы.Вы выполнили все нижеперечисленные действия: 1.Остановите mysqld и перезапустите его с помощью опции —skip-grant-tables. 2.Подключитесь к серверу mysqld только с помощью: mysql (т. е. опция no-p, и имя пользователя может не потребоваться). 3.Выполните следующие команды в клиенте mysql:

ОБНОВИТЕ mysql.пользовательский НАБОР Grant_priv=»Y», Super_priv= «Y», ГДЕ Пользователь=»root»;

ПРИВИЛЕГИИ НА СБРОС;

4.После этого вы сможете запустить GRANT ALL ON . TO ‘root’@’localhost’; и заставить его работать.

Если это не сработало, вы можете использовать debian-sys-maint user в Ubuntu 16.04 для восстановления привилегий user.root. Вы можете найти пароль пользователя.debian-sys-maint из этого файла

 sudo cat /etc/mysql/debian.cnf
 

Комментарии:

1. я не пользователь debian, я пользователь Windows, поэтому это изменение мне не поможет