Как запустить MySQL с помощью -skip-grant-tables?

Я заблокировал пользователя root из нашей базы данных. Мне нужно вернуть все привилегии пользователю root. У меня есть пароль, и я могу войти в MySQL. Но пользователь root не имеет всех привилегий.

Ответ 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

Ответ 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.

Следуя инструкциям коллег:

  1. Открыл меню быстрого запуска с Wampserver, выбрал "Остановить все сервисы"
  2. Открыл my.ini в текстовом редакторе, искал [mysqld]
  3. Добавлены 'skip-grant-tables' в конце раздела [mysqld] (но внутри него)
  4. Сохраните файл, оставьте редактор открытым
  5. В меню Wampserver выберите "Перезапустить сервисы". Появится предупреждение об опции skip-grant-tables
  6. В меню Wampserver выберите MySQL, чтобы открыть приглашение
  7. Он попросил пароль, просто нажмите Enter
  8. Вставьте команду ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
  9. Он должен сообщить, что операция прошла успешно (таблицы не затронуты)
  10. В файле my.ini удалите строку 'skip-grant-tables', сохраните файл
  11. В меню WampServer выберите еще раз Restart Service

Теперь вы можете войти с новым паролем. Спасибо за все ответы здесь.

Ответ 12

я попытался добавить skip-grant-tables под [mysqld] в файл my.ini, а затем попытался запустить службу mysql. результат, что служба просто остановилась сразу после запуска при каждой попытке запуска. как только я попытался запустить службу с удалением опции в файле my.ini, служба работает нормально.

Ответ 13

Запустите следующую команду из консоли, чтобы пропустить проверку пользовательской таблицы при запуске базы данных mysql из командной строки.

mysqld -skip-grant-tables