Não foi possível definir a senha para o usuário "root" do mysql

16

Eu sou novo no Ubuntu. Estou executando o Ubuntu 12.10. Estou tentando instalar o apache, php, mysql. No entanto, eu instalei o apache e ele está funcionando perfeitamente.

sudo apt-get install apache2

Mas quando tentei instalar o mysql usando o seguinte comando

sudo apt-get install mysql-server 

Após o download, ele solicitou a senha, mas depois de inserir e confirmar a senha. Recebo a seguinte mensagem de erro.

Não foi possível definir a senha para o usuário "root" do Mysql

Ocorreu um erro ao definir a senha para o mysql
usuário administrativo. Isso pode ter acontecido porque a conta já possui uma senha ou devido a um problema de comunicação com o servidor Mysql.
Você deve verificar a senha da conta após a instalação do pacote.
Leia o arquivo /usr/share/doc/mysql-server-5.5/README.Debian para obter mais informações.

depois de clicar no botão ok no prompt, estou recebendo a seguinte mensagem no terminal

Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)

O registro de erros do Mysql diz

130209 14:26:37 [Note] Plugin 'FEDERATED' is disabled.
130209 14:26:37 InnoDB: The InnoDB memory heap is disabled
130209 14:26:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130209 14:26:37 InnoDB: Compressed tables use zlib 1.2.7
130209 14:26:37 InnoDB: Using Linux native AIO
mysqld: Can't create/write to file '/tmp/ibNuz7q0' (Errcode: 13)
130209 14:26:37  InnoDB: Error: unable to create temporary file; errno: 13
130209 14:26:37 [ERROR] Plugin 'InnoDB' init function returned error.
130209 14:26:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130209 14:26:37 [ERROR] Unknown/unsupported storage engine: InnoDB
130209 14:26:37 [ERROR] Aborting

Eu procurei por esse problema, mas nada funcionou para mim. Por favor ajude.

Devendra Verma
fonte
11
Verifique se você mysql-serverjá instalou executando ps -e | grep mysqld. Se você vir alguma saída, isso significa que ela já está instalada.
verde
Eu não estou recebendo nenhuma saída para este
Devendra Verma
O erro do mysql que você postou pode indicar um problema com o seu /etc/mysql/my.cnf. Se você modificou esse arquivo ou qualquer arquivo no diretório / etc / mysql, restaure os originais e tente novamente.
21913 Richard Ayotte
Nathan, estou enfrentando o mesmo problema neste post e já segui as mesmas instruções que o green7 postou e o seu também. Eu nem consigo entender por que o mysql parou de funcionar. Ficaria feliz se você pudesse me dar mais assistência. Edit: Apenas para informar que tudo isso aconteceu porque comecei a receber do nada a seguinte mensagem quando tento instalar o mysql: ERRO: 1146 A tabela 'mysql.user' não existe Agradecemos antecipadamente.
não pode responder devido à baixa reputação. Esta essência obras para me gist.github.com/ervinb/63138a504da11a9c27af
gayavat

Respostas:

25

O mesmo problema de configuração de senha root aqui, o meu possivelmente causado por uma instalação manual sem êxito do servidor mysql 5.6 anteriormente. Uma desinstalação completa do mysql não é uma tarefa fácil. Eu limpei / reinstalei por horas e finalmente o resolvi com

sudo dpkg --purge mysql-client-core-5.5 # or alternative version
sudo dpkg --purge mysql-client
sudo dpkg --purge mysql-server-core-5.5 # or alternative version
sudo dpkg --purge mysql-common

Basicamente, eu apenas digito

sudo dpkg --purge mysql # followed by two tabs

Em seguida, --purgequalquer pacote que o terminal seja concluído automaticamente. Limpe mysql-commonfinalmente devido a alguns problemas de dependência.

Use os dpkgcomandos acima , além de

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

Também tentei o método Greq

sudo rm -rf /etc/mysql

Remova a pasta mysql de / var / lib

sudo rm -rf /var/lib/mysql/

Neste ponto, para garantir que o mysql seja totalmente removido, verifique com

which mysql
mysql --version

O primeiro não deve retornar nenhuma saída em vez de uma pasta. O segundo deve retornar o mysql não está instalado em vez de um número de versão. Caso contrário, a remoção ainda está incompleta.

O significado de dpkg --purgeé, ao usar apt-getsozinho, which mysqle mysql --versionse comportar como o mysql ainda está lá.

Antes da reinstalação, reconfigure o dpkg e atualize

sudo dpkg --configure -a
sudo apt-get update

Problema resolvido finalmente. Espero que seja útil para outras pessoas.

Sophia Feng
fonte
3
No meu caso, quando: sudo dpkg --purge mysql-common Falha com: dpkg: problemas de dependência impedem a remoção do mysql-common: mysql-client-5.5 depende do mysql-common (> = 5.5.35-0ubuntu0.12.04. 2) libmysqlclient18 depende do mysql-common (> = 5.5.35-0ubuntu0.12.04.2). dpkg: erro processando mysql-comum (--purge): problemas de dependência - Erros não removendo foram encontrados durante processamento de: mysql-comum
ses
Isso também funcionou para mim.
Michael Lindman
Estou procurando há algum tempo um conjunto de instruções que resolvam completamente a situação. Isso funcionou como descrito. Obrigado.
Matt Setter
Trabalhou para mim obrigado cara! É uma pena que o linux faça um trabalho tão confuso com a colocação de arquivos!
Southerton 9/10
eventualmente funcionou para mim. Eu acho que uma reinicialização depois de tudo o que poderia ter me ajudado a passar!
Danimal
5

Você precisa remover completamente o mysql. Acredite, eu tentei. O dpkg não fará isso sozinho.

Vejo

/programming/10853004/removing-mysql-5-5-completely

Se você estiver com pressa

sudo service mysql stop  #or mysqld
sudo killall -9 mysql
sudo killall -9 mysqld
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server-core-5.5
sudo apt-get purge mysql-client-core-5.5
Pedro Braconnot
fonte
Você senhor, é um herói! Passei horas pesquisando e tentando os diferentes conselhos em todos os lugares, e somente o seu realmente funcionou! Eu acho que a diferença reside em excluir o usuário do mysql, pois já tentei a maioria das outras opções. PS: Eu tive que kill -9vários processos antes de executar o deluser mysqlcomando com sucesso.
precisa saber é o seguinte
3

Eu acho que o motivo é que mysqlnão é possível acessar seu /tmp/diretório, como diz na linha

mysqld: Não é possível criar / gravar no arquivo '/ tmp / ibNuz7q0' (código de erro: 13)

Execute os seguintes comandos em um terminal:

sudo su
raiz do chown: root / tmp
chmod 1777 / tmp
/ usr / sbin / mysqld &

Explicação :

  • sudo su: Para executar os seguintes comandos como root.
  • chown root:root /tmp: Torna o usuário rootdo rootgrupo o proprietário /tmp.
  • chmod 1777 /tmp: Altere as permissões de /tmppara que sejam acessíveis a todos os usuários e somente o proprietário ou o usuário rootpossa excluir os arquivos nesse diretório. (Mais sobre permissões de arquivo aqui )
  • /usr/sbin/mysqld &: Inicie o mysqlddaemon.
verde
fonte
depois de entrar último comando estou recebendo esta mensagem # /etc/init.d mysqld iniciar bash: /etc/init.d: é um diretório
Devendra Verma
modificou a resposta
verde
Estou recebendo esta saída após / usr / sbin / mysqld & / usr / sbin / mysqld & [1] 3497. Como posso verificar se o MySQL está em execução
Devendra Verma
Para verificar se o seu mysql está rodando, execute ps -e | grep mysqlde se você obtiver alguma saída, está funcionando bem.
verde
obrigado @ green7 aqui está a saída ps -e | grep mysqld 1075? 00:00:04 mysqld
Devendra Verma
2

Eu lutei por várias horas na noite passada com isso e li tudo o que o Google tem em seu índice sobre o problema.

Eu reinstalei o mysql 20 vezes. Provavelmente é uma figura literal.

Finalmente, um deles, ou ambos, corrigiu o problema (após desinstalar / limpar / gravar o mysql):

  1. sudo rm -rf /etc/mysql (isso não foi removido após a limpeza)
  2. Em seguida, desliguei o servidor e redimensionei minha instância da VM de 512 MB para 1 GB (RAM).

Depois, eu corri sudo aptitude install mysql-servere ele finalmente foi instalado com sucesso:

$ sudo aptitude install mysql-server
[sudo] password for [REDACTED]: 
The following NEW packages will be installed:
  libdbd-mysql-perl{a} libmysqlclient18{a} mysql-client-5.5{a} mysql-common{a} mysql-server mysql-server-5.5{a} mysql-server-core-5.5{a} 
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,589 kB of archives. After unpacking 94.6 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://ftp.us.debian.org/debian/ wheezy/main mysql-common all 5.5.31+dfsg-0+wheezy1 [85.3 kB]
Get: 2 http://ftp.us.debian.org/debian/ wheezy/main libmysqlclient18 amd64 5.5.31+dfsg-0+wheezy1 [687 kB]
Get: 3 http://ftp.us.debian.org/debian/ wheezy/main libdbd-mysql-perl amd64 4.021-1+b1 [126 kB]
Get: 4 http://ftp.us.debian.org/debian/ wheezy/main mysql-client-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,923 kB]
Get: 5 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-core-5.5 amd64 5.5.31+dfsg-0+wheezy1 [3,784 kB]
Get: 6 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,900 kB]
Get: 7 http://ftp.us.debian.org/debian/ wheezy/main mysql-server all 5.5.31+dfsg-0+wheezy1 [83.6 kB]
Fetched 8,589 kB in 2s (3,068 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 52430 files and directories currently installed.)
Unpacking mysql-common (from .../mysql-common_5.5.31+dfsg-0+wheezy1_all.deb) ...
Selecting previously unselected package libmysqlclient18:amd64.
Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package libdbd-mysql-perl.
Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1+b1_amd64.deb) ...
Selecting previously unselected package mysql-client-5.5.
Unpacking mysql-client-5.5 (from .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server-core-5.5.
Unpacking mysql-server-core-5.5 (from .../mysql-server-core-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Processing triggers for man-db ...
Setting up mysql-common (5.5.31+dfsg-0+wheezy1) ...
Selecting previously unselected package mysql-server-5.5.
(Reading database ... 52616 files and directories currently installed.)
Unpacking mysql-server-5.5 (from .../mysql-server-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.5.31+dfsg-0+wheezy1_all.deb) ...
Processing triggers for man-db ...
Setting up libmysqlclient18:amd64 (5.5.31+dfsg-0+wheezy1) ...
Setting up libdbd-mysql-perl (4.021-1+b1) ...
Setting up mysql-client-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-core-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-5.5 (5.5.31+dfsg-0+wheezy1) ...
Stopping MySQL database server: mysqld.
131124 15:39:56 [Note] Plugin 'FEDERATED' is disabled.
131124 15:39:56 InnoDB: The InnoDB memory heap is disabled
131124 15:39:56 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131124 15:39:56 InnoDB: Compressed tables use zlib 1.2.7
131124 15:39:56 InnoDB: Using Linux native AIO
131124 15:39:56 InnoDB: Initializing buffer pool, size = 128.0M
131124 15:39:56 InnoDB: Completed initialization of buffer pool
131124 15:39:56 InnoDB: highest supported file format is Barracuda.
131124 15:39:56  InnoDB: Waiting for the background threads to start
131124 15:39:57 InnoDB: 5.5.31 started; log sequence number 1595675
131124 15:39:57  InnoDB: Starting shutdown...
131124 15:39:58  InnoDB: Shutdown completed; log sequence number 1595675
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Setting up mysql-server (5.5.31+dfsg-0+wheezy1) ...
Greg
fonte
1

Digite sudo apt-get purge mysql-server && sudo apt-get install mysql-serverse isso não funcionar, deixe um comentário na minha resposta e eu trabalharei com você para resolver esse problema.

Nathan Suchy
fonte
0

Os scripts de instalação para todas as versões do Ubuntu após a versão 12.04 não seguem o mesmo processo de instalação da versão 12.04. No 12.04, você é solicitado explicitamente a definir a senha do mysql durante a instalação. Para a versão 12.10 e posterior, basta solicitar a senha root do mysql, mas qual é a senha? O script de instalação é um passo atrás. Eu recomendo instalar o 12.04 em uma máquina virtual e instalar o mysql lá. Se você é como eu, e ao usá-lo em conjunto com o Drupal, definitivamente siga o 12.04.

Gary
fonte
0

Solução diferente para quem ainda está com problemas. Espero que eu possa ajudar aqueles que tentam reinstalar o Mysql. Note, é uma missão de busca e destruição. Então esteja cansado. Assumindo sua raiz:

apt-get purge mysql*
apt-get purge dbconfig-common #the screen used for mysql password
find / -name *mysql*          #delete any traces of mysql
#insert apt-get cleanups, autoremove,updates etc.

Originalmente, algo que restava estava interferindo na minha inicialização do mysqlserver-5.5. Esses comandos acabaram resolvendo o problema por mim.

mastash3ff
fonte