Alguém sabe por que meu /var/run/mysqld/mysqld.sock
arquivo de soquete não estaria no meu computador quando instalo (ou reinstalei) o MySQL 5.1?
No momento, quando tento iniciar um servidor com o mysqld, recebo erros como Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
, mas a criação de um arquivo em branco com esse nome (conforme sugerido nos fóruns do ubuntu) não teve êxito.
Eu tinha o mysql e o postgres servindo bem até atualizar para o natty há pouco tempo; Passei horas percorrendo os dois bancos de dados tentando descobrir o que está acontecendo. Posso desistir do postgres, mas não posso trabalhar sem uma cópia de trabalho do mysql.
A parte mais estranha: eu uso o Kubuntu, e meu entendimento é que o KDE usa o mysql para armazenar permissões de usuário, etc. Não estou tendo problemas com permissões estranhas; posso entender isso (de alguma forma?) o MySQL está realmente funcionando?
Talvez esses arquivos de soquete morem em um lugar diferente no natty? Seria mais fácil apenas reinstalar o sistema operacional fresco? Neste momento, estou aberto a sugestões que parem de desperdiçar meu tempo.
fonte
/var/run/mysqld/mysqld.sock
será criado. Como o @Paul disse, você deve remover qualquer arquivo que você colocar nesse local.Respostas:
Um arquivo de soquete, na verdade, não contém dados, ele os transporta. É um tipo especial e incomum de arquivo criado com chamadas / comandos especiais do sistema. Não é um arquivo comum.
É como um canal que o servidor e os clientes podem usar para conectar e trocar solicitações e dados. Além disso, é usado apenas localmente. Seu significado é meramente um local de encontro acordado no sistema de arquivos.
Criar um arquivo antigo simples e colocá-lo nesse local pode realmente interferir com a criação do servidor ... e, assim, impedir que os clientes locais se conectem ao servidor.
Minha recomendação é remover qualquer arquivo que você colocar no local. O arquivo de soquete especial é criado pelo servidor.
fonte
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
Quando você especificar
host=localhost
, o cliente mysql tentará efetuar login no servidor mysql usando o pipe nomeado unix, que requer um.sock
arquivo.Isso pode ser ignorado especificando host = 127.0.0.1. Isso fará com que o cliente mysql use o TCP para se conectar ao servidor.
Retirado da documentação do MySQL :
fonte
mysql.sock
desaparecimento sem uma boa razão em todas as versões do MySQL com as quais trabalhei (de volta à 4.0). Quando isso acontece, eu logo assim, mas uso em--protocol=tcp
vez de--port
. Quando você encerra o mysql, o serviço procura o arquivo de soquete. Assim, a execuçãoservice mysql stop
falharia. Para contornar a dor de cabeça do arquivo de soquete ausente, eu corromysqladmin -h127.0.0.1 --protocol=tcp -uroot -p shutdown
. Ah, BTW, +1 !!!Um soquete é um pseudo-arquivo especial usado para transmissão de dados pela leitura e gravação, não pelo armazenamento de dados.
O arquivo de soquete é criado quando o serviço é iniciado e removido quando o serviço é finalizado. A localização do arquivo é definida da seguinte
/etc/my.cnf
forma:fonte
No meu caso, a execução
mysqld_safe
criou um novomysqld.sock
arquivo.Você provavelmente não receberá um aviso de volta, mas se você reiniciar sua sessão, um arquivo mysqld.sock estará em algum lugar. Encontre com
fonte
Eu tive o mesmo problema com o mysqld.sock ausente. Eu fui ao diretório que continha o mysql, a saber,
/usr/bin
no meu caso. Então eu emiti o comandoO mysql duplo não é um erro de digitação, mas o mysql é um banco de dados que sempre estará presente em uma nova instalação do MySQL. Eu não sei se
--host
,--password
ou--port
são necessários, mas como funcionou para mim usando esses parâmetros, eu os incluo. Depois que o MySQL apareceu, entrei na tabela de usuários como defini a senha para root. Depois que o MySQL apareceu, o arquivo de soquete ausente foi criado. Espero que isso ajude alguém desde que lutei por dias.fonte
Se você estiver usando o nginx php-fastcgi e tiver o erro 502 Bad Gateway , deverá procurar a configuração do host virtual no arquivo de configuração do nginx. Você deve definir ou corrigir o
fastcgi_pass
parâmetro.fastcgi_pass
É a variável para definir a conexão do soquete entre nginx e php CGI.Outro ponto de problema é que o script inicial binário pode perder as seguintes entradas (importantes) abertas com:
nano /usr/bin/php-fastcgi
O conteúdo completo do meu script inicial / usr / bin / php-fastcgi:
fonte