Desativar --skip-grant-tables no MySQL

13

Eu sou bastante novo no Linux, mas estou configurando meus bancos de dados MySQL em uma instância do Amazon ec2. Eu segui algumas instruções que encontrei sobre como redefinir a senha de login do usuário usando a --skip-grant-tablesopção MySQL. Agora estou tentando adicionar um usuário e não consigo descobrir como desativar essa opção.

Isto é o que estou tentando fazer:

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

mas eu recebo este erro:

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

Como desativo esta opção?

user718229
fonte

Respostas:

3

Apenas pare e reinicie o MySQL normalmente.

Michael Hampton
fonte
2

Você pode fazer isso usando as etapas abaixo.

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

conecte-se ao seu mysql sem senha.

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

mude para o modo normal do mysql e conecte sem senha.

Isso certamente irá funcionar para você.

Mansur Ali
fonte
0

Ontem encontrei um problema semelhante. O servidor estava usando o Amazon Linux 2 como SO e o repositório oficial yum (os el7) como o meio de instalação.

Especialmente quando você estiver usando o MySQL do yum repo oficial, o MySQL será instalado como um serviço systemd. Nesse caso, você pode verificar como o processo MySQL é lançado através da execução seguinte comando: sudo service mysql status -l. Isso resulta na descrição do status atual do serviço mysql atual. Dessas descrições, pude encontrar a seguinte linha:

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

No meu ambiente, verificou-se que a MYSQLD_OPTSvariável foi definida com a --skip-grant-tablesopção value pelo processo systemd. Para confirmar as variáveis ​​de ambiente definidas pelo systemd, você pode executar sudo systemctl showe procurar a linha começando com Environment=.

Para alterar essa variável de ambiente, executei o seguinte comando.

sudo systemctl set-environment MYSQLD_OPTS=""

Após esta operação, reiniciei o serviço mysqld sudo service mysql restarte tudo estava funcionando perfeitamente.

Yuki Inoue
fonte