Meu ambiente local é:
- novo Ubuntu 16.04
- com PHP 7
com o MySQL 5.7 instalado
sudo apt-get install mysql-common mysql-server
Quando tentei acessar o MySQL (via CLI):
mysql -u root -p
Me deparei com um problema cíclico com três etapas.
1) Primeiro foi um problema de soquete
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Solução: reiniciando o PC.
O que levou a outro erro:
2) Com acesso negado
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Possível problema? Senha incorreta para o usuário "root"!
Solução: redefina a senha root com este tutorial .
Com senha correta e soquete de trabalho, chega o último erro.
3) Plug-in de autenticação incorreto
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Aqui eu parei ou de alguma forma cheguei a 1) novamente.
mysql
linux
ubuntu
auth-socket
Tomáš Votruba
fonte
fonte
Respostas:
Eu tenho uma solução!
Ao redefinir a senha root na etapa 2), também altere o plugin de autenticação para
mysql_native_password
:Isso me permitiu fazer login com sucesso!
Solução de código completo
1. execute comandos bash
1. primeiro, execute estes comandos bash
2. execute os comandos mysql => copie e cole para o cli manualmente
3. execute mais comandos bash
4. Problema de soquete (de seus comentários)
Quando você vê um erro de soquete , uma comunidade veio com 2 soluções possíveis:
(graças a @Cerin)
Ou
(graças a @Peter Dvukhrechensky)
Caminhos cegos e possíveis erros de borda
Use 127.0.0.1 em vez de localhost
Pode levar a "arquivo ausente" ou erro slt.
Funciona melhor.
Ignorar a questão do soquete
Encontrei várias maneiras de criar
mysqld.sock
arquivos, alterar direitos de acesso ou vincular-os a links simbólicos. Afinal, não era esse o problema.Ignorar o
my.cnf
arquivoA questão também não estava lá. Se você não tiver certeza, isso pode ajudá-lo .
fonte
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld; sudo mysqld_safe --skip-grant-tables &
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
Pode economizar tempo de alguémVocê pode tentar da seguinte forma que funciona para mim.
Iniciar servidor:
Agora, vá para a pasta meia:
Faça backup da meia:
Pare o servidor:
Restaure a meia:
Inicie o mysqld_safe:
Shell inicial do mysql:
Mudar senha:
Portanto, primeiro escolha o banco de dados
Agora digite abaixo duas consultas:
Agora, tudo ficará bem.
Para verificação:
feito!
N.B, After login please change the password again from phpmyadmin
Agora verifica
hostname/phpmyadmin
Username: root
Password: 123456
Para mais detalhes, consulte Como redefinir a senha esquecida phpmyadmin no Ubuntu
fonte
O
mysql
comando por padrão usa soquetes UNIX para conectar-se ao MySQL.Se você estiver usando o MariaDB, precisará carregar o Plug - in de autenticação de soquete Unix no lado do servidor.
Você pode fazer isso editando a
[mysqld]
configuração da seguinte maneira:Dependendo da distribuição, o arquivo de configuração geralmente está localizado em
/etc/mysql/
ou/usr/local/etc/mysql/
fonte
Você pode tentar estas etapas:
Parar o Serviço Mysql
sudo /etc/init.d/mysql stop
Efetue login como root sem senha
sudo mysqld_safe --skip-grant-tables &
Após o login no terminal mysql, você deve executar mais os comandos:
Depois de reiniciar o servidor mysql Se você ainda está enfrentando um erro, deve visitar: Redefinir a senha root do MySQL 5.7 Ubuntu 16.04
fonte
Para Ubuntu 18.04 e mysql 5.7
passo 1:
sudo mkdir /var/run/mysqld;
passo 2:
sudo chown mysql /var/run/mysqld
Etapa 3:
sudo mysqld_safe --skip-grant-tables
& Sair (use Sair se estiver preso)faça o login no mysql sem senha
Passo 4:
sudo mysql --user=root mysql
passo 5:
SELECT user,authentication_string,plugin,host FROM mysql.user;
passo 6:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
agora entre com
mysql -u root -p <root>
fonte
$ mysql -u root -p
mas o acesso negado ainda.Access denied for user 'root'@'localhost' (using password: YES)
Eu tentei digitar a senha 'SIM'Experimente: sudo mysql_secure_installation
Trabalhos no Ubuntu 18.04
fonte
Caso alguém chegue aqui depois de cometer o mesmo erro, eu cometi:
plugin="mysql_native_password"
temporariamente. Realizei minhas tarefas.plugin="auth_socket"
que resultou emmysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"
mysql_safe
para ignorar a autenticação para mudar para o plug-in apropriadoplugin="unix_socket"
Espero que isso poupe algum tempo se alguém receber a mensagem de erro do pôster original, mas a verdadeira causa foi usar o nome do plug-in, na verdade não falta a existência do próprio plugin "auth_socket", que de acordo com a documentação do MariaDB :
fonte
Você pode tentar com os comandos abaixo:
fonte