Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso redefinir o comportamento do usuário 'root' padrão no MySQL 5.7


Problema:

O auth_socket módulo precisa ser instalado e habilitado manualmente na root user se você escrever sobre as alterações do 5.7 importando seu antigo MySQL 5.5 banco de dados e tabela de usuários.

Solução:

Para usuários, queremos ainda usar mysql_native_password , o padrão. Para root , queremos usar auth_socket .
install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;

Se você fizer isso na ordem errada (adicione root 's auth_socket coluna antes de instalar o plugin), então você não poderá carregar o mysql, pois o plugin não realizará a autenticação. Para iniciar e executar o mysql no modo de segurança, use isto:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost

Essas correções foram realizadas ao importar um banco de dados completo e uma tabela de usuário do MySQL 5.5 para MySQL 5.7 , migrando do Ubuntu 14.04 para Ubuntu 16.04 .

Ferramentas:

Veja Plugins:show plugins \g

Mostrar auth_socket no usuário root:select auth_socket from mysql.user where user='root';