sexta-feira, 6 de agosto de 2010

Recuperar Senha do Administrador do Moodle com Comando SQL

Você esqueceu a senha do administrador do Moodle. Não faz a mínima idéia qual foi a senha que registrou no momento de instalação. Pior ainda, o e-mail cadastrado do usuário admin não está funcionando para recuperar pelo e-mail. Neste caso você bota mão na cabeça e pergunta o que vou fazer? Será que tenho que reinstalar novamente o Moodle?

Se isso for o seu problema, não esquente, mantenha na alegria. Acesse a base de dados em que instalou o Moodle e altere a senha no comando SQL.

Se o login do usuário for admin execute esse comando:
UPDATE mdl_user SET password=MD5('novasenha') WHERE username='admin'

Caso o login não for admin, tente alterar pelo id. Geralmente, usuário admin é o segundo a ser criado após o guest,  pois seu id é 2. Neste usando o comando:

UPDATE mdl_user SET password=MD5('novasenha') WHERE id=2

Esse comando SQL serve para alterar a senha de qualquer usuário. Uma vez feita a alteração, entre no Moode com a nova senha que vai funcionar.
Os comandos SQL acima foram testados nas bases MySQL PostgreSQL. 


Veja Também:  
Alterar Senha de Administrador do Moodle com Programação PHP

28 comentários:

  1. Boa noite, você sabe me dizer como eu posso definir as funções do administrador pelo banco de dados? Obrigada desde já!

    ResponderExcluir
  2. Su,
    Se você está referindo ao processo de cadastro de usuário com o perfil administrador no contexto do Moodle, o procedimento é o mesmo definido no link: http://moodlesql.blogspot.com/2010/07/matricular-usuario-no-curso-do-moodle.html

    O perfil padrão do administrador é 1 definido na tabela mdl_role. Para definir o perfil no contexto global do Moodle, basta inscrever o usuário no curso de formato site cujo id, por padrão, é o número 1.

    ResponderExcluir
  3. Só lembrando que o procedimento de inscrição definido no comentário anterior só vale par a verão 1.7 a 1.9 do Moodle. Não vale para a versão versão 2.0

    ResponderExcluir
  4. Boa noite ,Como eu posso descobrir qual é a minha versão ?, estou passando por um problema complicado, peguei um sistema que esta desenvolvido em moodle mais sem administrador o antigo desenvolvedor fez o favor de excluir todas as contas que tinham o poder de administrador, gostaria de saber como eu faço para criar uma nova conta como administrador já tentei fazer modificações em outra conta mais não obtive sucesso, desde já agradeço a atenção.

    ResponderExcluir
    Respostas
    1. No diretório raiz do moodle, que está dentro do htdocs do Apache, tem um arquivo chamado version.php onde uma variável de nome $release que recebe como valor a versão do seu Moodle.

      Excluir
  5. Obrigada pela dica. Perdi acesso como admin após a migração, e atualizar a senha pelo mysql resolveu!

    ResponderExcluir
  6. Muito obrigado!!!!!!!!!
    Me ajudou demais!!!

    ResponderExcluir
  7. Obrigado por compartilhar. para alguns um comando sql pode parecer algo simples, mas para mim que sou estudante ainda, visualizar o efeito destes comandos no contexto do dia a dia foi muito importante. Novamente Obrigado.

    ResponderExcluir
    Respostas
    1. É um prazer saber que estou colaborando com a sua formação acadêmica.

      Excluir
  8. Este comentário foi removido pelo autor.

    ResponderExcluir
  9. Uma contribuição: se vc utilizar o método descrito para alterar a senha, o Moodle fará uma alteração logo após vc logar. A plataforma fará o merge da sua senha nova com o campo $CFG->passwordsaltmain, que fica no arquivo config.php.

    Assim, suponhamos que temos um módulo que utiliza o mesmo login do Moodle. Devemos ter duas informações, a nova senha (vamos considerar 123456) e a chave do campo mencionado (considerando: F]Z8$hhY7l4.bO4a+s9?Xfc@7x0G_Ji), temos que fazer assim:

    UPDATE mdl_user SET password=MD5('123456F]Z8$hhY7l4.bO4a+s9?Xfc@7x0G_Ji') WHERE username='admin'

    ResponderExcluir
  10. Badiu, estou fazendo um site que controla a inscrição nos cursos.

    Eu tenho uma tabela auxiliar para controlar os usuários no site. Quando o usuário for criado na minha tabela, vou replicar a informação para o Moodle, criando o usuário lá também.

    Então quando ele acessar meu site, gostaria que, quando ele clicasse no link que vai para o ambiente de aprendizagem, já entrasse logado no Moodle. Tem como?

    ResponderExcluir
    Respostas
    1. Para um usuário cair no Moodle já logado a partir de um site externo, você precisa implementar um plugin de autenticação ou um script dentro do Moodle. Esse script ou plugin deve implementar os seguintes requisitos:

      1- Ter uma chave de sincronização entre a base de usuário do Moodle e a do sistema externo;

      2- Carregar a sessão do usuário no Moodle automaticamente pela chave de sincronização. Feito isso, o usuário já estará automaticamente logado.

      Excluir
  11. instalei o wampserver e o moodle. Fechei, e quando abri novamente pediu uma senha e eu não coloquei senha, apenas o usuário root.Como posso acessar o moodle?

    ResponderExcluir
    Respostas
    1. A senha de administração do Moodle é a senha cadastrada durante o processo de instalação. A senha de acesso a base de dados do Moodle deve ser informada durante a instalação.

      Não entendi bem a sua questão. Você perdeu a senha de root da base de dados mysql ou não cadastrou a senha de root?

      Se não cadastrou a senha de root, o mysql pode ser acessado sem senha, só com a identificação de login root.

      Excluir
  12. Olá Baidu, a minha senha de administrador foi trocada, graças a sua dica consegui recuperar, teria alguma forma de saber via log quando essa senha foi alterada? abraços

    ResponderExcluir
    Respostas
    1. Se a alteração da senha não for feita diretamente na base de dados e sim na interface de edição dos dados do usuário, o comando SQL a seguir extrai o log da data (coluna time) autor da alteração (coluna userid) e ip de onde ocorreu acesso:

      SELECT id,time,userid,ip FROM mdl_log WHERE module='user' AND action='update' AND url='view.php?id=2&course=1'

      O parâmetro url='view.php?id=2&course=1' especifica que se trata de tela do perfil do usuário com id 2, que por padrão é o admin do Moodle.

      Excluir
  13. Badiu,

    Você sabe qual a melhor forma para mapear classes no html das páginas do moodle? Exemplo: na pagina inicial do moodle eu tenho lista de categorias, cursos e novidades, se eu quiser listar esses itens, eu poderia buscá-los simplesmente com o javascript através dos nomes das classes no html. Verifiquei que elas são organizadas em um padrão...sabe qual a fonte para me especializar melhor sobre isso? Estou lendo API de pagina e navegação, até agora não achei nada muito específico.

    ResponderExcluir
  14. Boa noite,

    Instalaram o moodle versão 2.6.4 em um servidor local, no primeiro acesso, modificaram os dados de acesso de administrador e não estão lembrando!

    Alguém sabe dizer-me como eu posso redefinir as funções do administrador pelo banco de dados da versão 2.6.4 do moodle?

    Nos ajude, por gentileza.

    Meu e-mail é:
    alexandre.vasc@bol.com.br

    ResponderExcluir
    Respostas
    1. Alexandre,
      Acabei de fazer teste no Moodle 2.6.4
      Segui os seguintes procedimentos:
      1) Acessei o banco do Moodle pelo phpmyadmin
      2) Selecionei o banco do Moodle
      3) Acessei a opção de execução do comando sql
      4) Executei o seguinte comando:
      UPDATE mdl_user SET password=MD5('novasenhaadmin') WHERE id=2
      5) Acessei o Moodle com a nova senha e funcionou.

      Siga os mesmos procedimentos e veja se soluciona o seu problema.

      Excluir
  15. Olá!
    Desculpe-me pela ignorância, mas qual arquivo, e em que pasta fica, eu devo editar para inserir este comando?
    Meu moodle é da versão 1.9.6

    ResponderExcluir
    Respostas
    1. Léo,
      O comando SQL especificado no post para recuperar a senha do admin deve ser executado em um terminal SQL do banco de dados do Moodle. Se você tiver acesso ao banco do Moodle pela interface phpMyAdmin, basta navegar no banco do Moodle e executar esse comando do textarea sobre SQL.

      Você pode usar qualquer interface gráfica do banco de dados para executar o comando SQL.

      Excluir
    2. Obrigado por responder tão prontamente. Dei sorte: descobri, há pouco, onde eu tinha anotado a senha. Mas valeu por eu conhecer o blog e as tantas informações superúteis sobre o Moodle.

      Excluir
  16. Obrigado me ajudou muito.
    Duas dúvidas:
    O que significa "MD5" no código que vem antes da senha?
    E porque o moodle não aceita uma alteração manual no campo password da tabela referida?

    Desde já Grato.

    ResponderExcluir