Quando usei o código, mysqld_safe --skip-grant-tables &
mas recebo o erro:
O diretório mysqld_safe '/ var / run / mysqld' para o arquivo de soquete UNIX não existe.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Eu resolvi:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Agora eu uso o mesmo código mysqld_safe --skip-grant-tables &
e obtenho
mysqld_safe Iniciando o daemon mysqld com bancos de dados em / var / lib / mysql
Se eu usar $ mysql -u root
, vou receber:
Versão do servidor: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle e / ou suas afiliadas. Todos os direitos reservados.
Oracle é uma marca registrada da Oracle Corporation e / ou de suas afiliadas. Outros nomes podem ser marcas registradas de seus respectivos proprietários.
Digite 'help'; ou '\ h' para obter ajuda. Digite '\ c' para limpar a instrução de entrada atual.
mysql>
Agora é hora de alterar a senha:
mysql> use mysql
mysql> describe user;
Lendo as informações da tabela para concluir os nomes de tabelas e colunas Você pode desativar esse recurso para obter uma inicialização mais rápida com -A
Banco de dados alterado
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
ou Se você possui uma conta root mysql que pode se conectar de qualquer lugar, você também deve:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Método alternativo:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
E se você tiver uma conta root que possa acessar de qualquer lugar:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
agora precisa quit
do mysql e parar / iniciar
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
agora novamente `mysql -u root -p 'e use a nova senha para obter
mysql>