Por que a instalação do pacote mysql-server não cria uma conta root?

2

Não é o Por quê? que importa. É a Como posso fazer isso sozinho?

Estou usando o Ubuntu 10.04 LTS Server . Eu só quero instalar um servidor MySQL , mas por alguma razão ele não me deixa. Quando eu corro apt-get install mysql-server tudo funciona bem. No final da instalação, uma janela modal aparece e me pede para inserir a senha root . A única esquisitice aqui é que a codificação dos caracteres especiais (como a borda da janela modal) está um pouco confusa. Mas presumo que este não seja o maior problema.

No final da instalação, o MySQL inicia automaticamente e tudo funciona bem, até que eu tente logar. mysql -u root -p me pede para Enter password: . Eu digitei a senha que usei durante a instalação e recebo este erro: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) Quando eu tento com uma senha vazia, recebo o mesmo erro, exceto a parte (using password: YES) que se transforma em (using password: NO) .

Eu fiz algumas pesquisas no Google e já tentei todo esse mysqld_safe --skip-grant-tables & thingy.

Eu também verifiquei a tabela do usuário mysql. A única entrada é o debian-sys-maint user.

mysql> SELECT * FROM user;
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| Host      | User             | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| localhost | debian-sys-maint | *A632698FAB70686111EB0BE3F732A4C244B6DE8C | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            |          |            |             |              |             0 |           0 |               0 |                    0 |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
    
por buschtoens 22.01.2012 / 00:48

4 respostas

1

Ok. Como realmente não temos usuário root, precisamos nos tornar um. O MySQL cria a manutenção do usuário por padrão. É chamado debian-sys-maint . Você pode encontrar sua senha em /etc/mysql/debian.cnf .

  1. start mysql - Inicie o MySQL da forma Upstart , se ainda não o fez.
  2. vi /etc/mysql/debian.cnf - Você verá um arquivo de configuração com algumas variáveis. Estamos procurando por password = **************** .
  3. mysql -u debian-sys-maint -p - Você será solicitado a digitar uma senha. Digite a senha que acabamos de descobrir. Não admira, você não verá nada enquanto estiver digitando. Pressione Enter. Bazinga! Estamos em!
  4. use mysql - Diga ao MySQL que queremos editar seu próprio banco de dados de configuração.
  5. SELECT * FROM user - apenas para testes. A única linha que você deve ver é o debian-sys-maint , o usuário que você está usando atualmente. Se você vir mais de uma linha, pare imediatamente e deixe um comentário para não quebrar mais do que conserta.
  6. INSERT INTO user VALUES ('localhost','root',password('YourNewPasswordGoesHere'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); - Execute este SQL-Query. Ele inserirá o usuário root e concederá a ele todas as permissões. Não se esqueça de alterar 'YourNewPasswordGoesHere' para sua senha desejada.
  7. Você recebe um erro?
    • ERROR 1136 (21501): Column count doesn't match value count at row 1 - Parece que estamos tendo muitos ou menos valores para nosso novo usuário root . Verifique o comando SELECT * FROM user e faça uma cópia dos valores de debian-sys-maint . Você só precisa corrigir o valor de 'Y' , '' e 0 .
    • Um erro diferente - Pare imediatamente! Deixe-nos saber mais nos comentários.
    • Query OK, 1 row affected (0.00 sec) - Isso não é erro. Isso é puro sucesso! Você pode provar isso por SELECT * FROM user; . Continue com o próximo passo.
  8. quit - Fecha sua sessão atual do MySQL. Nós terminamos aqui.
  9. stop mysql e, em seguida, start mysql - As alterações precisam de um reinício para entrar em vigor.
  10. mysql -u root -p - Digite sua nova senha quando for solicitado. Pressione Enter.
  11. Você terminou!

Se você tiver algum problema, avise-nos e envie comentários.

Gostaria de agradecer MDMarra que me deu a dica necessária!

    
por 22.01.2012 / 02:07
3

Se realmente não houver usuário root quando você olhar para a tabela do usuário, algo deu errado durante a instalação. A primeira coisa a tentar é

sudo dpkg-reconfigure

Se isso não funcionar, você pode tentar

INSERT INTO user VALUES ('localhost','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
INSERT INTO user VALUES ('127.0.0.1','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
INSERT INTO user VALUES ('ebuntu','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
flush privileges;
quit
killall mysqld
/etc/init.d/mysql start

Segundo conjunto de comandos descaradamente roubados de aqui

    
por 22.01.2012 / 01:04
1

Se o debconf lhe pedir uma senha para um usuário root é porque ele tenta criar a conta root. Se não, é porque há um erro, seja no seu sistema ou na versão empacotada que você está usando.

Eu não tenho um Ubuntu para verificá-lo, mas você deve procurar por problemas semelhantes no launchpad.

    
por 22.01.2012 / 01:03
0

"ERRO 1136 (21501): a contagem de colunas não corresponde à contagem de valores na linha 1":

  • Se você entrou com a senha debian-sys-maint e recebe um erro abaixo.

  • Você pode atualizar a senha de root existente:

update user set authentication_string = password('YourNewPasswordGoesHere') where host = 'localhost' and user = 'root';

  • reinicie o mysql e tente novamente:)
por 26.04.2018 / 21:09