Tagmysql server

ERROR 2006 (HY000) at line 27652: MySQL server has gone away

Enquanto estava usando um script para substituir o meu banco de dados local com o banco de dados de produção, eu me deparei com o seguinte erro:

ERROR 2006 (HY000) at line 27652: MySQL server has gone away

O primeiro passo é verificar o tamanho da variável max_allowed_packet

  
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+

O valor da variável max_allowed_packet está definido como 16777216, isso quer dizer que em nosso /etc/mysql/my.cnf ela está definica com 16M (16777216÷1024÷1024).

Como resolver ERROR 2006 (HY000) at line 27652: MySQL server has gone away

Para resolvermos esse problema, vamos alterar o valor da variável max_allowed_packet, no arquivo /etc/mysql/my.cnf

  
$ sudo vim /etc/mysql/my.cnf

Vamos alterar para 128M

  
...
[mysqld]
...
max\_allowed\_packet    = 128M  
...
[mysqldump]
max\_allowed\_packet    = 128M  
...

Caso você também queira aumentar o tempo de timeout, adicione abaixo do [mysqld]

  
...
[mysqld]
...
wait_timeout = 6000  
...

Agora é só reiniciar o serviço do mysql

$ sudo service mysql restart


		
	

Mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

Você pode verificar se a senha do seu usuário foi criada no padrão antigo utilizando o comando a seguir (com uma conta que tenha acesso a essa tabela).

  
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user  

Esse comando vai te mostrar o comprimento das senhas e irá retornar 16 para contas com senhas no padrão antigo e 41 para as contas com senhas novas (e, 0 para contas com nenhuma senha).

Se você tiver permissão, para recriar a senha no padrão “novo”, você pode utilizar as queries a seguir:

  
SET PASSWORD FOR 'User'@'Host'=PASSWORD('sua_senha');  
FLUSH Privileges  

Caso você não possa fazer isso, você pode tentar utilizar as queries abaixo e alterar o seu php para:

  
SET SESSION old_passwords=FALSE;  
SET PASSWORD = PASSWORD('[your password]');  
  
define('CLIENT_LONG_PASSWORD', 1);  
mysql_connect('[endereco_servidor]', '[nome_de_usuario]', '[sua_senha]', false, CLIENT_LONG_PASSWORD);  

abraço,
até…

© 2017 Adler Dias

Theme by Anders NorénUp ↑