Não é possível conectar-se ao servidor MySQL local através do socket '/tmp/mysql_2.sock' durante a instalação manual do mysql

1

Eu recebo o erro abaixo ao tentar instalar manualmente mysql-5.6.17-linux-glibc2.5-x86_64

Passos que segui:

1. tar -xzvf mysql-standard-5.1.34-linux-i686-glibc23.tar.gz
2. ln -s mysql-standard-5.1.34-linux-i686-glibc23 mysql
 a) set basedir= to the full path of your new mysql directory
 b) set datadir= to the full path of the /data subdir in your new mysql directory.
3. Set up the default MySQL databases:
 a) ./scripts/mysql_install_db --defaults-file=mysql.cnf
 b) ./bin/mysqladmin --defaults-file=mysql.cnf -u root password "yourpasswordhere"
4. Create a New Database and User Account
 a) Log in to your mysql server as root: ./bin/mysql --defaults-file=mysql.cnf -u root -p

O arquivo mysql.cnf se parece com:

[client]
socket=/tmp/mysql_2.sock
port=3307
####################################
[mysqld]
#REQUIRED!!
#Change the basedir directory to reflect your mysql home directory
basedir=/mysql
#REQUIRED!!
#Change the data direcory to reflect your mysql data directory
datadir=/mysql/data
port=3307
socket=/tmp/mysql_2.sock
key_buffer_size=64M

#[OPTIMIZATION]
#Set this value to 50% of available RAM if your environment permits.
myisam_sort_buffer_size=1.5G
#[OPTIMIZATION]
#This value should be at least 50% of free hard drive space. Use caution if         setting it to 100% of free space however. Your hard disk may fill up!
myisam_max_sort_file_size=100G

#[OPTIMIZATION]
#Our default of 2G is probably fine for this value. Change this value only if you are using a machine with little resources available. 
read_buffer_size=1.5G  

comando:

root@ubuntu:/mysql#  ./bin/mysqld_safe --defaults-    file=mysql.cnf &  

Erro:

[1] 2386
root@ubuntu:/mysql# 140415 19:08:12 mysqld_safe Logging to '/mysql/data/ubuntu.err'.
chown: invalid user: 'mysql'  
140415 19:08:12 mysqld_safe Starting mysqld daemon with databases from     /mysql/data
140415 19:08:12 mysqld_safe mysqld from pid file     /mysql/data/ubuntu.pid ended  

./bin/mysqladmin --defaults-file=mysql.cnf -u   
./bin/mysqladmin --defaults-file=mysql.cnf -u root password 12345
./bin/mysqladmin: connect to server at 'localhost' failed  

error: 'Can't connect to local MySQL server through socket '/tmp/mysql_2.sock' (2)' 

Check that mysqld is running and that the socket: '/tmp/mysql_2.sock' exists!
[1]+  Done                    ./bin/mysqld_safe --defaults-file=mysql.cnf    

Eu tentei fazer o login por comando:

./bin/mysql --defaults-file=mysql.cnf -u root -p  

Erro:

Enter password:   

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql_2.sock' (2)
    
por BioDeveloper 15.04.2014 / 16:04

3 respostas

0

Você deve:

  1. Adicione um usuário para seu servidor mysql useradd -r -s /bin/false -m -d /mysql mysql
  2. Escreva um script upstart para o seu servidor.
  3. Verifique se o arquivo pid e os arquivos de soquete podem ser criados pelo usuário mysql , executando os chmod 's adequados.
por yorodm 15.04.2014 / 17:01
0

Existem alguns passos para verificar quando você faz manualmente, o que poderia criar o erro mencionado acima. Eu suponho que você tenha baixado manualmente o MySQL do site oficial ou usado um PPA de terceiros para instalá-lo:

  • Verifique se o mysql ainda não está em execução:

    ps -e|grep -i 'mysqld' .

    Se aparecer, você precisará eliminá-lo fazendo um sudo killall -9 mysqld . No caso de não morrer, então pegue o PID do ps que você executou e kill -9 PID

  • Execute o mysql via /etc/init.d/mysql start para ver se ele cria o mesmo erro. Se der exatamente o mesmo erro acima, então você precisa copiar o arquivo mysql.server encontrado na pasta de arquivos de suporte dentro da pasta mysql que você baixou ou na pasta /usr/local/mysql e você precisa copiá-lo para /etc/init.d/mysql eg:

    cp mysql.server /etc/init.d/mysql e dê a ele uma permissão executável chmod + x e tente executar /etc/init.d/mysql start novamente.

  • Se ainda assim você tiver problemas, edite o arquivo de configuração em /etc/my.cnf e altere TODAS as /tmp/mysql.socket linhas para /var/run/mysqld/mysqld.sock ou qualquer outro local de soquete para o qual deseja enviá-lo. Note que o arquivo de configuração também pode estar em /etc/mysql/my.cnf em alguns casos como o meu. O arquivo de configuração tem pelo menos 3 linhas que você precisa alterar.

por Luis Alvarado 15.04.2014 / 17:24
0

Se o seu arquivo my.cnf (normalmente na pasta / etc / mysql /) estiver corretamente configurado com

 socket=/var/lib/mysql/mysql.sock

você pode verificar se o mysql está rodando com o seguinte comando:

 mysqladmin -u root -p status

mude sua permissão para a pasta mysql. Se você está trabalhando localmente, você pode fazer:

 sudo chmod -R 755 /var/lib/mysql/
    
por minigeek 24.09.2016 / 06:37