1) Se o mysql estiver rodando, pare o serviço do MySQL
2) Digite o seguinte comando:
/usr/sbin/mysqld –bootstrap –skip-grant-tables –basedir=/ –datadir=/var/lib/mysql << bla
update mysql.user set password=” where user=’root’;
bla
Agora você acaba de “ZERAR” a senha do mysql. Basta então iniciar o serviço do mysql novamente.
3) Agora, caso ainda não tenha feito, inicie o serviço do MySQL novamente
4) Troque a senha do mysql com o seguinte comando:
mysqladmin -u root password ‘minha nova senha’
=================================================
DICA 2
Primeiro mate o processo do mysql (não utilize a opção -9):
# killall mysqld
Agora inicie o MySQL em modo seguro (safe mode):
# safe_mysqld –skip-grant-tables &
Ou
# /usr/bin/safe_mysqld –skip-grant-tables &
Agora conecte-se ao servidor MySQL usando o cliente do mysql:
# mysql
Ou
# /usr/bin/mysql
Após conectar-se ao servidor MySQL, acesse o banco MySQL, digitando:
> use mysql;
Agora vamos definir a nova senha para o usuário root do MySQL:
> update user set password = password(‘digite sua nova senha aqui’) where user=’root’ and host=’localhost’;
Ah, e não esqueça de recarregar os privilégios, digitando:
> flush privileges;
Agora você poder sair do cliente do MySQL, digite:
> quit
Agora vamos desligar o modo de segurança do MySQL, execute:
# /etc/init.d/mysqld stop
E enfim, vamos iniciar o MySQL com a nova senha de root:
# /etc/init.d/mysqld start
=================================================
DICA 3
1 – Para o servidor mysql:
#service mysqld stop ou
#service mysql stop
Dependendo da versão do linux o nome do daemon do mysql pode variar. Caso nenhum dos comandos acima pare o seu mysql, entre no diretório “/etc/rc.d/init.d” e lá voçê digita ./onomedeseuMYSQLdaemon stop
2 – Inicie o mysql com as opções “–skip-grant-tables”. Fazendo isso o mysql irá inicar ignorando as tabelas que fazem a autenticação.
#safe_mysqld –skip-grant-tables&
3 – Conecte no servidor mysql.
#mysql -u root mysql
4 – Digita os comandos abaixo no console do cliente mysql.
mysql> UPDATE user SET Password=PASSWORD(‘minhanovasenha’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
5 – Reinicie seu servidor mysql.
#service mysql restart ou
#service mysqld restart
=================================================
1. Finalize o daemon mysqld enviando um kill (não kill -9) para o servidor mysqld. O pid é armazenado em um arquivo .pid, que normalmente está no diretório de banco de dados do MySQL:
2. shell> kill `cat /mysql-data-directory/hostname.pid`
Você deve ser o usuário root do Unix ou o mesmo usuário com o qual o mysqld está executando para fazer isto.
3. Reinicie o mysqld com a opção –skip-grant-tables.
4. Defina uma nova senha com o comando mysqladmin password:
5. shell> mysqladmin -u root password ‘mynewpassword’
6. Agora você também pode parar o mysqld e reiniciá-lo normalmente, ou apenas carregue a tabela de privilégios com:
7. shell> mysqladmin -h hostname flush-privileges
8. Depois disto, você deve estar apto para conectar usando a nova senha.
De forma alternativa, você pode definir a nova senha usando o cliente mysql:
1. Finalize e reinicie o mysqld com a opção –skip-grant-tables com descrito acima.
2. Conecte ao servidor mysqld com:
3. shell> mysql -u root mysql
4. Dispare os seguintes comandos no cliente mysql:
5. mysql> UPDATE user SET Password=PASSWORD(‘minhanovasenha’)
6. -> WHERE User=’root’;
7. mysql> FLUSH PRIVILEGES;
8. Depois disto, você deve estar apto a conectar usando a nova senha.
9. Você agora pode parar o mysqld e reiniciá-lo normalmente.
+++
Resumo:
Linux:
- Parar o serviço do MySQL (
service mysqld stop, /etc/init.d/mysqld stop, matando o processo
– conforme sua distribuição); - Reiniciar o mysql com a opção
--skip-grant-tables
(você poderá utilizá-la ao iniciar o mysqld manuamente ou colocando-a no arquivo de init) - Alterar a senha do usuário root com o comando:
# mysqladmin -u root password 'nova_senha'
você pode alterar a senha também com o comando:
# mysqladmin flush-privileges
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
mysql> FLUSH PRIVILEGES;
Windows XP (com o MySQL rodando como serviço):
- Entrar nos serviços do windows (Iniciar -> Executar -> services.msc);
- Procure pelo MySQL, clique com o botão direito sobre ele e vá em propriedades;
- Pare o serviço (clicando sobre o botão parar);
- Insira no campo “Parâmetros de inicialização” o parâmetro
--skip-grant-tables
e clique no botão iniciar e em seguida botão Ok; - Execute o cmd (Iniciar -> Executar -> cmd) , entre no diretório de binários do MySQL (
cd c:\arquivos de programas\mysql\bin
(ou onde estiver instalado)); - Alterar a senha do usuário root com o comando:
mysqladmin -u root password 'nova_senha'
você pode alterar a senha também com o comando:
mysqladmin flush-privileges
mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
mysql> FLUSH PRIVILEGES;
O parâmetro --skip-grant-tables
desabilita no servidor o uso do sistema de privilégios. Com isso todos os usuários terão acesso a todos os bancos de dados. Ao executar o comando Flush privileges
, o servidor retorna a utilizar seu sistema de privilégios, mantendo a segurança original do serviço.
Agora se você adicionou o parâmetro --skip-grant-tables
no arquivo de init, não se esqueca de remové-lo de lá, para evitar que na próxima reinicialização do serviço ele fique vulnerável. Caso seu MySQL esteja no Windows, execute os 4 primeiros passos novamente removendo o parâmetro passado na inicialização.
http://dev.mysql.com/doc/refman/5.0/en/adding-users.html
autor: http://josemorelli.net/2005/11/07/alterando-a-senha-do-usuario-root-no-mysql
Poderia ter colocado a fonte correta para parte do texto…
http://josemorelli.net/2005/11/07/alterando-a-senha-do-usuario-root-no-mysql