MySQL에서 --skip-grant-tables를 끕니다.


13

Linux를 처음 사용하지만 Amazon ec2 인스턴스에서 MySQL 데이터베이스를 설정하고 있습니다. --skip-grant-tablesMySQL 옵션을 사용하여 사용자 로그인 패스를 재설정하는 방법을 찾았습니다 . 이제 사용자를 추가하려고하는데 해당 옵션을 끄는 방법을 알 수 없습니다.

이것이 내가하려고하는 일입니다.

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를 OS로 사용하고 공식 yum 저장소 (el7 것)를 설치 수단으로 사용했습니다.

특히 공식 yum repo의 MySQL을 사용하는 경우 MySQL은 시스템 서비스로 설치됩니다. 이 경우 다음 명령을 실행하여 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-tablessystemd 프로세스에 의해 value 옵션 으로 설정되었습니다 . systemd에서 설정 한 환경 변수를 확인하기 sudo systemctl show위해로 시작하는 행을 찾아서 찾을 수 있습니다 Environment=.

이 환경 변수를 변경하기 위해 다음 명령을 실행했습니다.

sudo systemctl set-environment MYSQLD_OPTS=""

이 작업 후에 의해 mysqld 서비스를 다시 시작했으며 sudo service mysql restart모든 것이 완벽하게 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.