AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 6168
Accepted
Ted
Ted
Asked: 2011-09-27 04:26:33 +0800 CST2011-09-27 04:26:33 +0800 CST 2011-09-27 04:26:33 +0800 CST

Preso fora do MySQL / XAMPP

  • 772

Eu tenho usado o XAMPP (no Windows XP/XAMPP 1.7.4 /PHP 5.3.5) por um bom tempo, e na manhã passada comecei a receber algumas mensagens estranhas enquanto estava desenvolvendo meu site. Aconteceu ontem e começou como algo que pensei que poderia lidar, mas aparentemente não consegui. Essas mensagens eram algumas sobre tempos limite, outras sobre "não é possível conectar" para minha string de conexão dentro do meu site.

Eu estava pensando que o site poderia estar sob ataque, já que a manhã passada foi como qualquer outra manhã. Na verdade, posso iniciar a página de administração (o botão próximo ao apache "iniciar/parar"), mas não consigo fazer login no MySQL. Acho que o root não foi definido, então tentei usar a documentação para redefini-lo.

O que acontece agora é que simplesmente não consigo fazer login no servidor MySQL, não importa o que eu faça. Continuo recebendo acesso negado para ''@'localhost' e 'root@localhost' se tento logar como root.

O que posso fazer?

mysql phpmyadmin
  • 1 1 respostas
  • 2693 Views

1 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2011-09-27T06:12:37+08:002011-09-27T06:12:37+08:00

    Você precisa reiniciar o mysql a partir da linha de comando do Linux assim:

    service mysql restart --skip-grant-tables --skip-networking
    

    Se você estiver usando Windows, adicione as duas opções na seção mysqld de my.ini:

    [mysqld]
    skip-grant-tables
    skip-networking
    

    e depois correr

    net stop mysql (wait 10 seconds)
    net start mysql
    

    Isso permitirá o login imediato sem autenticação e sem nenhuma conexão remota se infiltrando em você.

    INSERT INTO mysql.user SET
    Host='localhost',
    User='mynewuser',
    Password=PASSWORD('whateverpassword'),
    Select_priv='Y',
    Insert_priv='Y',
    Update_priv='Y',
    Delete_priv='Y',
    Create_priv='Y',
    Drop_priv='Y',
    Reload_priv='Y',
    Shutdown_priv='Y',
    Process_priv='Y',
    File_priv='Y',
    Grant_priv='Y',
    References_priv='Y',
    Index_priv='Y',
    Alter_priv='Y',
    Show_db_priv='Y',
    Super_priv='Y',
    Create_tmp_table_priv='Y',
    Lock_tables_priv='Y',
    Execute_priv='Y',
    Repl_slave_priv='Y',
    Repl_client_priv='Y';
    

    então

    service mysql restart
    

    Pelo menos você terá um usuário localhost nomeado mynewusercom privilégios suficientes para fazer login.

    Você deve então executar esta consulta:

    select user,host,password from mysql.user;
    

    e veja se algum novo usuário foi adicionado por um hacker. Se você vir algum usuário remoto que não deveria estar lá, poderá removê-lo com:

    DELETE FROM mysql.user WHERE ...;
    FLUSH PRIVILEGES;
    

    Se você estiver usando o Windows, lembre-se de remover skip-grants-tablese skip-networkingde my.ini, então pare e inicie o serviço mysql.

    EMBARGO

    Faça um backup /var/lib/mysql/mysqlantes de fazer qualquer coisa.

    ATUALIZAÇÃO 2011-09-26 10:41 EDT

    Se a consulta INSERT INTO mysql.user não funcionar, significa simplesmente que a consulta não é compatível com a versão do mysql da qual tirei este exemplo.

    Para saber a consulta INSERT correta para o usuário, execute esta consulta:

    desc mysql.user;
    

    Você verá todas as colunas com o tipo ENUM('Y','N') para cada privilégio. Ajuste a consulta INSERT para corresponder a todas as colunas e, em seguida, execute esse INSERT.

    Para obter as colunas exatas para definir como Y para todos os privilégios, use esta consulta:

    SELECT CONCAT('SET ... ',GROUP_CONCAT(CONCAT(column_name,'=''Y'''),';'))
    FROM information_schema.columns
    WHERE table_schema='mysql'
    AND table_name='user'
    AND column_type='enum(''N'',''Y'')'
    ORDER BY ORDINAL_POSITION\G
    

    Isso apresentará colunas para definir, independentemente da versão do MySQL que você está usando.

    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve