Отключить --skip-grant-таблицы в MySQL


13

Я довольно плохо знаком с использованием Linux, но настраиваю свои базы данных MySQL на экземпляре Amazon ec2. Я следовал некоторым указаниям по сбросу пароля для входа пользователя, используя --skip-grant-tablesопцию MySQL. Сейчас я пытаюсь добавить пользователя и не могу понять, как отключить эту опцию.

Вот что я пытаюсь сделать:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass

но я получаю эту ошибку:

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

Как отключить эту опцию?

Ответы:




2

Вы можете сделать это, используя следующие шаги.

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql

подключиться к вашему mysql без пароля.

mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;

переключитесь в обычный режим mysql, затем подключитесь без пароля.

Это, безусловно, будет работать для вас.


0

Вчера я столкнулся с подобной проблемой. Сервер использовал Amazon Linux 2 в качестве ОС и официальный репозиторий yum (el7) в качестве средства установки.

Особенно, когда вы используете MySQL официального репозитория yum, MySQL будет установлен как сервис systemd. В таком случае, вы можете проверить , как процесс MySQL запущен, выполнив следующую команду: sudo service mysql status -l. Это приводит к описанию текущего статуса текущего сервиса MySQL. Из этих описаний я мог найти следующую строку:

  Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

В моей среде оказалось, что MYSQLD_OPTSпеременная была установлена ​​с --skip-grant-tablesпараметром value процессом systemd. Чтобы подтвердить переменные окружения, установленные systemd, вы можете выполнить sudo systemctl showи найти строку, начинающуюся с Environment=.

Чтобы изменить эту переменную среды, я выполнил следующую команду.

sudo systemctl set-environment MYSQLD_OPTS=""

После этой операции я перезапустил службу mysqld sudo service mysql restart, и все работало отлично.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.