Como altero a senha root e o nome de usuário do MySQL no servidor ubuntu? Preciso parar o serviço mysql antes de definir alguma alteração?
Também tenho uma configuração do phpmyadmin. O phpmyadmin será atualizado automaticamente?
Como altero a senha root e o nome de usuário do MySQL no servidor ubuntu? Preciso parar o serviço mysql antes de definir alguma alteração?
Também tenho uma configuração do phpmyadmin. O phpmyadmin será atualizado automaticamente?
Respostas:
Defina / altere / redefina a senha de root do MySQL no Ubuntu Linux. Digite as seguintes linhas no seu terminal.
sudo /etc/init.d/mysql stop
Inicie a mysqld
configuração:sudo mysqld --skip-grant-tables &
Em alguns casos, você deve criar o /var/run/mysqld
primeiro:
sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
sudo service mysql start
mysql -u root mysql
Substitua YOURNEWPASSWORD
por sua nova senha:
UPDATE
mysql.user
SET
Password = PASSWORD('YOURNEWPASSWORD')
WHERE
User = 'root';
FLUSH PRIVILEGES;
exit;
Nota: em algumas versões, se a
password
coluna não existir, você pode tentar:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
Nota: Esse método não é considerado a maneira mais segura de redefinir a senha; no entanto, ele funciona.
Referências:
sudo killall -9 mysqld
? e depois sudo service mysql start
reiniciar o daemon normal ...
mkdir /var/run/mysqld
e chown mysql: /var/run/mysqld
entre as etapas 1 e 2
O único método que funcionou para mim é o descrito aqui (estou executando o ubuntu 14.04). Por uma questão de clareza, estes são os passos que segui:
sudo vim /etc/mysql/my.cnf
Adicione as seguintes linhas no final:
[mysqld] ignorar-conceder-tabelas
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
- Olhe para o topo para determinar se a coluna da senha é chamada de
senha ou authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- Use a coluna de senha apropriada acima
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
Remova as linhas adicionadas na etapa 2 se desejar manter seus padrões de segurança.
sudo service mysql restart
Para referência: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
A maneira oficial e fácil de redefinir a senha root em um servidor ubuntu ...
Se você estiver em 16.04, 14.04, 12.04:
sudo dpkg-reconfigure mysql-server-5.5
Se você estiver no 10.04:
sudo dpkg-reconfigure mysql-server-5.1
Se você não tiver certeza de qual versão do servidor mysql está instalada, tente:
dpkg --get-selections | grep mysql-server
Notas atualizadas para mysql-server-5.7
Note que se você estiver usando o mysql-server-5.7, não poderá usar o método dpkg-reconfigure mais fácil, mostrado acima.
Se você souber a senha, faça o login e execute:
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;
Como alternativa, você pode usar o seguinte:
sudo mysql_secure_installation
Isso fará uma série de perguntas sobre como proteger sua instalação (altamente recomendado), incluindo se você deseja fornecer uma nova senha root.
Se você NÃO souber a senha root, consulte esta redação centrada no Ubuntu no processo .
Veja para mais informações:
https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html
Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
sudo dpkg-reconfigure mysql-server-5.0
sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
O que funcionou para mim (Ubuntu 16.04, mysql 5.7):
Pare o MySQL
sudo service mysql stop
Crie o diretório de serviço do MySQL.
sudo mkdir /var/run/mysqld
Dê ao usuário do MySQL permissão para gravar no diretório de serviço.
sudo chown mysql: /var/run/mysqld
Inicie o MySQL manualmente, sem verificações de permissão ou rede.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Em outro console, efetue login sem uma senha.
mysql -uroot mysql
Então:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;
Desative o MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Inicie o serviço MySQL normalmente.
sudo service mysql start
Estou compartilhando a solução final passo a passo para redefinir uma senha do MySQL no Linux Ubuntu.
Referência retirada do blog (dbrnd.com)
Etapa 1: Interrompa o serviço MySQL.
sudo stop mysql
Etapa 2: Mate todos os mysqld em execução.
sudo killall -9 mysqld
Etapa 3: Iniciando o mysqld no modo de Segurança.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Etapa 4: Inicie o cliente mysql
mysql -u root
Etapa 5: Após o login bem-sucedido, execute este comando para alterar qualquer senha.
FLUSH PRIVILEGES;
Etapa 6: você pode atualizar a senha root do mysql.
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Nota : No MySQL 5.7, a coluna Password
é chamadaauthentication_string
.
Etapa 7: Por favor, execute este comando.
FLUSH PRIVILEGES;
Enfrentei problemas com o ubuntu 18.04 e o mysql 5.7, esta é a solução
Tente reiniciar o mysql-server antes de executar os comandos
sudo service mysql restart
MYSQL-SERVER> = 5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-SERVER <5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-SERVER >= 5.7
versão foi a única coisa que realmente resolveu o problema
MYSQL-SERVER >= 5.7
versão para ser preciso.
Mude a senha root do MySQL.
Este método expõe a senha ao histórico da linha de comandos; esses comandos devem ser executados como raiz.
Entre através da ferramenta de linha de comando mysql:
mysql -uroot -poldpassword
Execute este comando:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
ou
Execute este comando, que define uma senha para o usuário atual ('root' para este caso):
SET PASSWORD = PASSWORD ('nova senha');
Inicialmente, execute este comando:
sudo mysql
e então você deve verificar qual método de autenticação de suas contas de usuário MySQL usa.
SELECT user,authentication_string,plugin,host FROM mysql.user;
agora você já pode ver algo assim:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
na tabela acima, você pode ver o status de todas as contas de usuários mysql e se você definiu uma senha para a conta root antes de ver mysql_native_password
na coluna do plugin auth_socket
. Em resumo, para alterar sua senha root, você deve executar:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Certifique-se de alterar a senha para uma senha forte de sua escolha. Em seguida, para recarregar o servidor para efetivar suas novas alterações, execute isso;
FLUSH PRIVILEGES;
Então, novamente verifique os métodos de autenticação empregados pelo seu mysql, por este comando:
SELECT user,authentication_string,plugin,host FROM mysql.user;
e agora a saída é:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
como você pode ver na tabela de permissões que sua conta root possui mysql_native_password
. agora você pode sair do shell MYSQL
exit;
É isso aí. Você deve reiniciar o mysql sudo service mysql restart
. Agora você pode acessar o mysql como uma conta root com sua senha facilmente.
Se você deseja alterar a senha root do MySQL, em um terminal, digite:
sudo dpkg-reconfigure mysql-server-5.5
O daemon do MySQL será parado e você será solicitado a inserir uma nova senha.
sudo dpkg-reconfigure mysql-server-5.7
no Ubuntu 16.04, ele não solicitou a digitação de uma nova senha.
mysql-server is broken or not fully installed
, pode-se usar sudo apt purge mysql*
esudo apt install mysql-server
Isso funciona como charme, eu fiz isso no Ubuntu 16.04. Crédito total para o link abaixo, como o recebi de lá. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts[[1]
Pare o MySQL
sudo service mysql stop
Crie o diretório de serviço do MySQL. sudo mkdir / var / run / mysqld
Dê ao usuário do MySQL permissão para gravar no diretório de serviço.
sudo chown mysql: /var/run/mysqld
Inicie o MySQL manualmente, sem verificações de permissão ou rede.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Faça login sem uma senha.
mysql -uroot mysql
Atualize a senha do usuário root. verifique se a conta raiz pelo menos é atualizada pela consulta abaixo. faça alguma seleção e verifique os valores existentes, se quiser
UPDATE mysql.user SET
authentication_string=PASSWORD('YOURNEWPASSWORD'),
plugin='mysql_native_password' WHERE User='root';
EXIT;
Desative o MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Inicie o serviço MySQL normalmente.
sudo service mysql start
Parar o serviço sudo MySQL mysql stop
Crie o diretório de serviço do MySQL. sudo mkdir / var / run / mysqld
Dê ao usuário do MySQL permissão para gravar no diretório de serviço. mysql do sudo chown: / var / run / mysqld
Inicie o MySQL manualmente, sem verificações de permissão ou rede. sudo mysqld_safe --skip-grant-tables --skip-networking &
5.Faça login sem uma senha. mysql -uroot mysql
6. Atualize a senha do usuário root.
UPDATE mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE Usuário = 'root' AND Host = '%'; SAÍDA;
Desative o MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Inicie o serviço MySQL normalmente. serviço sudo mysql start
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
sem AND Host='%'
. Obrigado!
Esta solução pertence à versão anterior do MySQL. Ao fazer login no MySQL usando autenticação de soquete, você pode fazê-lo.
sudo mysql -u root
Em seguida, o seguinte comando pode ser executado.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Os detalhes estão disponíveis aqui .
sudo mysql -u root
mas consegui fazê-lo sudo mysql
e executar o ALTER USER
comando.
Esta é a solução para mim. Eu trabalho no Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373
Mas é importante essa alteração na última etapa:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
Para Ubuntu 18.04 e mysql versão 14.14 Distrib 5.7.22, siga a etapa abaixo para redefinir a senha do mysql.
sudo systemctl stop mysql
sudo systemctl edit mysql
Este comando abrirá um novo arquivo no editor nano, que você usará para editar as substituições de serviço do MySQL. Isso altera os parâmetros de serviço padrão para o MySQL. Este arquivo estará vazio, então adicione o seguinte conteúdo:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
sudo systemctl revert mysql
e finalmente
sudo systemctl restart mysql
Agora aproveite
Fazendo eco do comentário do rogerdpack: se você não conhece a senha root do MySQL e não se importa com os dados / configurações do MySQL, pode reinstalá-lo e redefinir a senha do root da seguinte maneira:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client
Durante a instalação, você pode escolher a senha do root:
Se você conhece sua senha atual, não precisa parar o servidor mysql. Abra o terminal do ubuntu. Entre no mysql usando:
mysql - username -p
Em seguida, digite sua senha. Isso o levará ao console do mysql. Dentro do console, digite:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Em seguida, limpe os privilégios usando:
> flush privileges;
Então você está pronto.
Quando você usa o MySQL PASSWORD()
no sistema em que deseja alterar a senha, isso pode fazer com que a senha apareça em um log do MySQL em texto não criptografado [ fonte ]. Mantê-los, seus backups, etc., tão seguros quanto a senha, parece um pesadelo para mim, então eu gosto de fazê-lo da seguinte maneira:
Na sua máquina local , execute isso com sua senha:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
Observe o espaço à frente para impedir que ele apareça no histórico do bash (para outras distribuições que não o Ubuntu, isso pode funcionar de maneira diferente - fonte ).
Na sua máquina servidor, execute o seguinte comando para alterar sua senha root do MySQL (substitua myhash
pelo hash da sua senha conforme impresso pelo primeiro comando):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
Opcionalmente, vamos ficar um pouco paranóicos: na sua máquina local, limpe a tela do terminal clear
e limpe a rolagem do terminal virtual, para ocultar a senha de texto não criptografado que aparece no comando acima.
Para atualizar a senha de usuário "root" do Mysql, você deve ter em mente que precisará de permissões de superusuário para isso. Se você tiver privilégios de superusuário, tente os seguintes comandos:
MySQL 5.7.6 e posterior
sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass
MySQL 5.7.5 e versões anteriores
sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
Você não precisa de tudo isso. Basta fazer login:
mysql -u root -p
Em seguida, altere a senha do usuário atual como o mysql>
prompt:
mysql> set password=password('the_new_password');
mysql> flush privileges;
A maioria das respostas sobre esse tópico está desatualizada; duas grandes mudanças ocorreram no MySQL até a redação desta resposta:
1- o campo 'Senha' na tabela de usuários foi substituído pela coluna 'authentication_string'.
2- a função de criptografia 'Senha': PASSWORD ("of some text") está obsoleta.
Consulte este link para obter mais informações: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Em vez de redefinir a senha, há uma solução alternativa na máquina local se você tiver configurado phpmyadmin
a conexão sem fornecer a senha ou o nome de usuário. Verifique isso iniciando mysql
, apache
etc. Eu xampp
instalei na minha máquina local. Portanto, iniciar o xampp iniciará todos os serviços necessários. Agora vou http://localhost/phpmyadmin
me mostrar todos os bancos de dados. Isso confirma que você salvou o nome de usuário e a senha no arquivo de configuração do phpmyadmin, que pode ser encontrado no phpmyadmin
local da instalação. Se você xampp
instalou, a phpmyadmin
pasta pode ser encontrada na pasta raiz da xampp
instalação. Procure a palavra password
no config.inc.php
arquivo. Lá você encontrará o password
e username
.
Você pode facilmente mudar a senha do mysql se implantada no xampp através do phpadmin gui fornecido.
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
para o mysql 5.6, este comando funciona e você pode definir a senha através do assistente:
sudo dpkg-reconfigure mysql-server-5.6
Você pode tentar estas etapas para redefinir a senha root do mysql 5.7:
Parar o Serviço Mysql
sudo /etc/init.d/mysql stop
Efetue login como root sem senha
sudo mysqld_safe --skip-grant-tables
e
Após o login no terminal mysql, você deve executar mais os comandos:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
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
Você pode usar este comando:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
depois disso, use flush:
FLUSH PRIVILEGES;
Definindo a senha do MySQL
sudo /etc/init.d/mysql stop
sudo mkdir / var / run / mysqld /
sudo chown mysql / var / run / mysqld /
sudo mysqld_safe --skip-grant-tables &
raiz do sudo mysql -u
use mysql;
update user set authentication_string=PASSWORD("New_Passwore_Here") where
Usuário = 'root';
Salve as alterações
privilégios de liberação; Saída;
pare o MySQL safe_mode e inicie o serviço padrão do MySQL
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
sudo mysql -u raiz -p
*** Fonte: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/
Se você souber a senha de usuário 'root', efetue login no mysql com essas credenciais. Em seguida, execute a seguinte consulta para atualizar a senha.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
ao alterar / redefinir a senha do MySQL, os seguintes comandos listados acima não ajudaram. Descobri que entrar no terminal e usar esses comandos não faz sentido. em vez disso, use o comando sudo para tudo. DELETE SYSTEM 32 para Windows, se isso ajudar.
ubuntu
sistema operacional e não o Windows. O que você quer dizer com DELETE SYSTEM 32 para Windows ?
Para redefinir ou alterar a senha, digite sudo dpkg-reconfigure mysql-server-X.X
(XX é a versão mysql que você instalou, isto é, 5.6, 5.7) e, em seguida, será exibida uma tela na qual é necessário definir a nova senha e, na próxima etapa, confirme a senha e aguarde um momento. É isso aí.
Eu tive que seguir esta rota no Ubuntu 16.04.1 LTS. É uma mistura de algumas das outras respostas acima - mas nenhuma delas ajudou. Passei uma hora ou mais tentando todas as outras sugestões do site MySql para tudo no 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 usado como a nova senha.
Nota: não havia /var/log/mysqld.log apenas /var/log/mysql/error.log
Observe também que isso não funcionou para mim:
sudo dpkg-reconfigure mysql-server-5.7
Nem:
sudo dpkg-reconfigure --force mysql-server-5.5
Crie o diretório de serviço do MySQL.
sudo mkdir /var/run/mysqld
Dê ao usuário do MySQL permissão para gravar no diretório de serviço.
sudo chown mysql: /var/run/mysqld
Então:
execute / usr / bin / mysql_secure_installation
Saída de mysql_secure_installation
root @ myServer: ~ # / usr / bin / mysql_secure_installation
Protegendo a implantação do servidor MySQL.
Digite a senha para a raiz do usuário:
O VALIDAR SENHA PLUGIN pode ser usado para testar senhas e melhorar a segurança. Ele verifica a força da senha e permite que os usuários definam apenas as senhas que são suficientemente seguras. Deseja configurar o plugin VALIDATE PASSWORD?
Pressione y | Y para Sim, qualquer outra tecla para Não: não Usando a senha existente para root. Alterar a senha para root? ((Pressione y | Y para Sim, qualquer outra tecla para Não): y
Nova senha:
Redigite a nova senha: Por padrão, uma instalação do MySQL possui um usuário anônimo, permitindo que qualquer pessoa faça login no MySQL sem precisar ter uma conta de usuário criada para eles. Isso é destinado apenas para testes e para tornar a instalação um pouco mais suave. Você deve removê-los antes de passar para um ambiente de produção.
Remover usuários anônimos? (Pressione y | Y para Sim, qualquer outra tecla para Não): y Sucesso.
Normalmente, o root só deve ter permissão para se conectar a partir de 'localhost'. Isso garante que alguém não consiga adivinhar a senha raiz da rede.
Proibir o login root remotamente? (Pressione y | Y para Sim, qualquer outra tecla para Não): y Sucesso.
Por padrão, o MySQL vem com um banco de dados chamado 'teste' que qualquer pessoa pode acessar. Isso também se destina apenas a testes e deve ser removido antes de entrar em um ambiente de produção.
Remover banco de dados de teste e acesso a ele? (Pressione y | Y para Sim, qualquer outra tecla para Não): y
Soltando banco de dados de teste ... Sucesso.
Removendo privilégios no banco de dados de teste ... Sucesso.
Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora entrem em vigor imediatamente.
Recarregar tabelas de privilégios agora? (Pressione y | Y para Sim, qualquer outra tecla para Não): y Sucesso.
Tudo feito!