Estou tentando instalar o mysql em uma porção tendo CentOS Linux release 7.2.1511
. Dê uma olhada na instalação do processo:
# sudo yum install mysql-server
Resultado:
Dependencies Resolved
===========================================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================================
Removing:
mysql-community-client x86_64 5.7.10-1.el7 @mysql57-community 109 M
mysql-community-server x86_64 5.7.10-1.el7 @mysql57-community 652 M
Transaction Summary
===========================================================================================================================================================================================================
Eu executei o mysql damon:
# sudo service mysqld start
Verificando o serviço:
# ps -ef|grep mysql
mysql 1371 1 0 22:17 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Aí vem o problema me deixando louco. Quero definir a senha root pela primeira vez, então fiz:
# sudo mysql_secure_installation
// when password is required, I just type "enter key"
Mas a saída: Protegendo a implantação do servidor MySQL.
Digite a senha para a raiz do usuário: Erro: acesso negado para o usuário 'root' @ 'localhost' (usando a senha: NO)
Pesquisando o erro, em 90% dos casos, a solução é chamar o mysqld_safe --skip-grant-tables &
comando:
service mysqld stop
mysqld_safe --skip-grant-tables &
mysql --user=root mysql
update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;
Mas mysqld_safe
solicita um erro "comando não encontrado". Eu também testei com sudo mysqld --skip-grant-tables &
, mas não faz nada. Agradeço se você me orientar na direção certa para definir a senha do root. Agradeço antecipadamente.
PATH
. Ou você precisa de caminhos completos. (Esta é mais uma questão de Linux do que uma questão MySQL.)Respostas:
Se você acabou de executar o comando mysql no usuário root, receberá acesso sem a senha solicitada, porque a autenticação de soquete está ativada para root @ localhost.
Este guia é enganoso.
A única maneira de definir a senha é alternar para autenticação nativa, como:
fonte
Na minha pesquisa insana para uma solução, dei uma olhada
/var/log/mysqld.log
e encontrei esta linha:Parece que o mysql 5.7+ gera uma senha aleatória na instalação e solicitada nesse arquivo.
fonte
Siga as etapas abaixo para redefinir a senha:
Redefina a senha raiz do servidor MySQL.
Saída algo como:
Use a senha acima durante o processo de redefinição do mysql_secure_installation .
Você redefiniu com êxito a senha root do servidor MySQL. Use o comando abaixo para verificar se o servidor MySQL está conectado ou não.
Veja meu artigo: Instale o MySQL 5.7 mais recente no RHEL / Centos 7
fonte
Todas as opções acima não funcionaram para mim e observe que passei uma hora ou mais tentando todas as outras sugestões do site MYSql para tudo sobre o SO, finalmente consegui trabalhar com:
Nota: enquanto mostrava Digite a senha para o usuário root, eu não tinha a senha original, então apenas digitei a mesma senha para ser usada como a nova senha.
Nota: não havia /var/log/mysqld.log apenas /var/log/mysql/error.log
execute / usr / bin / mysql_secure_installation
Saída de mysql_secure_installation
fonte