Я заблокировал пользователя root из нашей базы данных. Мне нужно вернуть все привилегии пользователю root. У меня есть пароль, и я могу войти в MySQL. Но пользователь root не имеет всех привилегий.
Как запустить MySQL с помощью -skip-grant-tables?
Ответ 1
У меня была такая же проблема, как и название этого вопроса, так что если кто-то еще разобрался с этим вопросом и хочет запустить MySql в режиме "skip-grant-tables" в Windows, вот что я сделал.
Остановите службу MySQL через инструменты администратора, службы.
Измените конфигурационный файл my.ini(предполагая пути по умолчанию)
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
или для версии MySQL >= 5.6
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
В разделе SERVER SECURE в разделе [mysqld] добавьте следующую строку:
skip-grant-tables
чтобы вы имели
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
skip-grant-tables
Запустите службу еще раз, и вы сможете войти в свою базу данных без пароля.
Ответ 2
Как вернуть контроль над пользователем root в MySQL.
ОПАСНОСТЬ: РИСКОВАЯ ОПЕРАЦИЯ
- Запустите сессию ssh (используя root, если это возможно).
-
Отредактируйте файл
my.cnf
используя.sudo vi /etc/my.cnf
-
Добавить строку в блок mysqld. *
skip-grant-tables
-
Сохранить и выйти.
-
Перезапустите службу MySQL.
service mysql restart
-
Проверьте статус сервиса.
service mysql status
-
Подключитесь к mysql.
mysql
-
Использование основной базы данных.
use mysql;
-
Переопределить пароль пользователя root.
UPDATE user SET 'authentication_string' = PASSWORD('myNuevoPassword') WHERE 'User' = 'root';
-
Отредактируйте файл my.cnf.
sudo vi /etc/my.cnf
-
Стереть строку.
skip-grant-tables
-
Сохранить и выйти.
-
Перезапустите службу MySQL.
service mysqld restart
-
Проверьте статус сервиса.
service mysql status
-
Подключиться к базе данных.
mysql -u root -p
-
Введите новый пароль при появлении запроса.
Это действие очень опасно, оно позволяет любому подключаться ко всем базам данных без ограничений без имени пользователя и пароля. Он должен использоваться осторожно и должен быть быстро изменен, чтобы избежать рисков.
Ответ 3
В системе Linux вы можете сделать следующее (должно быть похоже на другие ОС)
Проверьте, запущен ли процесс mysql:
sudo service mysql status
Если он запущен, остановите процесс: (Убедитесь, что вы закрыли все инструменты mysql)
sudo service mysql stop
Если у вас есть проблемы с остановкой, сделайте следующее
Поиск процесса: ps aux | grep mysqld
ps aux | grep mysqld
kill -9 process_id
процесс: kill -9 process_id
Теперь запустите MySQL в безопасном режиме с пропуском гранта.
sudo mysqld_safe --skip-grant-tables &
Ответ 4
Попробовав много вещей, вот что сработало для меня:
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
Итак, сначала мы используем sudo для входа в mysql как root без пароля. Тогда мы просто обновляем пароль root.
После этого я перезапустил mysqld
:
sudo service mysql restart
И newpassword
вошел в систему как root!
Ответ 5
Если вы используете сервер mysql 5.6 и имеете проблемы с C:\Program Files\MySQL\MySQL Server 5.6\my.ini
:
Вы должны перейти к C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
.
Вы должны добавить skip-grant-tables
, а затем вам не нужен пароль.
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
# server_type=3
[mysqld]
skip-grant-tables
Примечание: после завершения работы с skip-grant-tables
вы должны восстановить файл C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
.
Ответ 6
если вы используете Apple MacBook OSX
, а затем:
- Остановите свой сервер MySQL (если он уже запущен).
- Найдите конфигурационный файл MySQL,
my.cnf
. (Для меня это было размещено @/Applications/XAMPP/xamppfiles/etc
. Вы можете просто выполнить поиск, если вы не может найти его). - Откройте
my.cnf
файл в любом текстовом редакторе. - Добавьте
"skip-grant-tables"
(без кавычек) в конце раздела[mysqld]
и сохраните файл. - Теперь запустите свой сервер MySQL. Он начнется с параметра
skip-grant-tables
.
Сделайте то, что вы хотите сейчас!
PS: Удалите skip-grant-tables
из my.cnf
файла, как только вы закончите с тем, что хотите сделать. ELSE MySQL сервер всегда будет работать без доступа.
Ответ 7
Используйте следующую команду (обратите внимание на "d" ): mysqld --skip-grant-tables
Ответ 8
У Mysql есть пошаговое руководство для этого:
Ответ 9
Если это окно, самое простое - остановить серверы, добавить таблицы пропуска в файл конфигурации mysql и перезапустить сервер.
После устранения проблем с разрешениями повторите описанное выше, но удалите опцию skip-grant-tables.
если вы не знаете, где находится ваш файл конфигурации, затем войдите в mysql send SHOW VARIABLES LIKE '%config%'
, и одна из возвращенных строк сообщит вам, где находится ваш файл конфигурации.
Ответ 10
Измените файл my.ini и добавьте skip-grant-tables и перезапустите сервер mysql:
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql"
tmpdir = "C:/xampp/tmp"
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
skip-grant-tables
# Change here for bind listening
# bind-address="127.0.0.1"
# bind-address = ::1
Ответ 11
Я в Windows 10, используя сервер WAMP64. Искал my.cnf
и my.ini
. Нашел my.ini
в C:\wamp64\bin\mariadb\mariadb10.2.14
.
Следуя инструкциям коллег:
- Открыл меню быстрого запуска с Wampserver, выбрал "Остановить все сервисы"
- Открыл
my.ini
в текстовом редакторе, искал[mysqld]
- Добавлены
'skip-grant-tables'
в конце раздела[mysqld]
(но внутри него) - Сохраните файл, оставьте редактор открытым
- В меню Wampserver выберите "Перезапустить сервисы". Появится предупреждение об опции
skip-grant-tables
- В меню Wampserver выберите MySQL, чтобы открыть приглашение
- Он попросил пароль, просто нажмите Enter
- Вставьте команду
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
- Он должен сообщить, что операция прошла успешно (таблицы не затронуты)
- В файле
my.ini
удалите строку'skip-grant-tables'
, сохраните файл - В меню WampServer выберите еще раз Restart Service
Теперь вы можете войти с новым паролем. Спасибо за все ответы здесь.
Ответ 12
я попытался добавить skip-grant-tables под [mysqld] в файл my.ini, а затем попытался запустить службу mysql. результат, что служба просто остановилась сразу после запуска при каждой попытке запуска. как только я попытался запустить службу с удалением опции в файле my.ini, служба работает нормально.
Ответ 13
Запустите следующую команду из консоли, чтобы пропустить проверку пользовательской таблицы при запуске базы данных mysql из командной строки.
mysqld -skip-grant-tables