#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, поэтому это изменение мне не поможет