Estou tendo um grande problema ao tentar conectar ao mysql. Quando eu corro:
/usr/local/mysql/bin/mysql start
Eu tenho o seguinte erro:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
Eu tenho mysql.sock
sob o /var/mysql
diretório
Em /etc/my.cnf
eu tenho:
[client]
port=3306
socket=/var/mysql/mysql.sock
[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
e em /etc/php.ini
eu tenho:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock
Eu reiniciei o apache usando sudo /opt/local/apache2/bin/apachectl restart
Mas ainda tenho o erro.
Caso contrário, eu não sei se isso é relevante, mas quando mysql_config --sockets
eu recebo
--socket [/tmp/mysql.sock]
/var/log/mysql
ou em algum lugar por aí) que indique por que não está sendo executado? Você recebe um erro ao tentar iniciá-lo?service mysqld start
se você acabou de instalar. hthsudo service mysql start
me salvouRespostas:
Se o seu arquivo my.cnf (normalmente na pasta / etc / mysql / ) estiver configurado corretamente com
você pode verificar se o mysql está sendo executado com o seguinte comando:
tente mudar sua permissão para a pasta mysql. Se você estiver trabalhando localmente, poderá tentar:
que resolveu para mim
fonte
mysqld
serviço.você tem certeza que instalou o mysql e o servidor mysql?
Por exemplo, para instalar o servidor mySql, usarei o yum ou apt para instalar a ferramenta de linha de comando mysql e o servidor:
Habilite o serviço MySQL:
Inicie o servidor MySQL:
depois defina a senha root do MySQL:
Espero que ajude.
fonte
brew install mysql
sudo apt-get install mysql-server
então a vida era boaCan't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
do cliente? É o cliente tentando e falhando na conexão, certo? (Acho que a pergunta original precisa ser editada para esclarecer isso).Uma solução rápida que funcionou para mim: tente usar o endereço IP local (127.0.0.1) em vez de 'localhost' em mysql_connect (). Isso "força" o php a se conectar através do TCP / IP em vez de um soquete unix.
fonte
localhost
e fica127.0.0.1
assim mesmo antes de tentar se conectar?Eu recebi o seguinte erro
Tentei de várias maneiras e finalmente resolvi da seguinte maneira
modificado
para
e reiniciado
funcionou
fonte
localhost
corrigi-lo.Verifique se você está executando o mysqld:
/etc/init.d/mysql start
fonte
sudo service mysql start|restart
para o Ubuntu.Para impedir que o problema ocorra, você deve executar um desligamento normal do servidor na linha de comando, em vez de desligar o servidor.
Isso interromperá os serviços em execução antes de desligar a máquina.
Baseado no Centos, um método adicional para recuperá-lo novamente quando você enfrentar esse problema é mover o mysql.sock:
Reiniciar o serviço cria uma nova entrada chamada mqsql.sock
fonte
Eu recebi esse erro ao definir o trabalho cron para o meu arquivo. Alterei as permissões do arquivo para 777, mas ainda não funcionou para mim. Finalmente consegui a solução. Pode ser que seja útil para outros.
Tente com este comando:
Lembre-se de que -h significa host , -P significa porta e -p significa senha.
fonte
-p
não significa porta , isso significa que a senha , você confundido com-P
mysql -h 127.0.0.1 -u root -p
Como pode ser visto pelas muitas respostas aqui, existem muitos problemas que podem resultar nessa mensagem de erro quando você inicia o serviço MySQL. O problema é que o MySQL geralmente diz exatamente o que há de errado, se você apenas procurar no arquivo de log apropriado.
Por exemplo, no Ubuntu, você deve verificar
/var/log/syslog
. Como muitas outras coisas também podem estar registrando nesse arquivo, você provavelmente desejará usar asgrep
mensagens do mysql e astail
apenas as mais recentes. Todos juntos, isso pode se parecer com:grep mysql /var/log/syslog | tail -50
Não faça cegamente alterações em sua configuração porque alguém disse 'Isso funcionou para o meu sistema'. Descubra o que realmente está errado com seu sistema e você obterá um resultado melhor muito mais rapidamente.
fonte
.cnf
. Isso explica tudo. Agora posso parar de tentar coisas aleatórias e resolver o problema real. Obrigado.Outra solução alternativa é editar o arquivo /etc/my.cnf e incluir o host na seção [client]
E, em seguida, reiniciando o serviço mysql.
Esta solução alternativa foi testada em: Versão do servidor: 5.5.25a-log Distribuição de origem
fonte
Eu tive o mesmo problema e foi causado por uma atualização de drivers mysql quando o servidor mysql estava em execução. Corrigi-o apenas reiniciando o mysql e o apache2:
fonte
mysql
não estava correndo. Corrisudo service mysql start
depois de executarsudo service mysql status
para verificar se não estava funcionando.No meu caso, eu estava usando o Centos 5.5. Eu descobri que o problema era porque o serviço mysql foi interrompido de alguma forma. Então iniciei o serviço mysql com o comando:
Então ... erro bobo.
fonte
Se tudo funcionou bem e você começou a ver esse erro, antes de fazer qualquer outra coisa, verifique se não há espaço em disco:
Se o volume em que o mysql.sock está sendo criado estiver com 100% de uso, o MySql não poderá criá-lo e isso será a causa desse erro. Tudo o que você precisa fazer é excluir algo que não é necessário, como arquivos de log antigos.
fonte
tente com -h (host) e -P (porta):
mysql -h 127.0.0.1 -P 3306 -u root -p
fonte
Isso deve lhe servir muito bem. Pode ser que você tenha alterado alguns comandos que afetaram as configurações do mysql.
fonte
systemctl start mariadb.service
no Fedora 22 ou RedHat 7. Depois disso, é possível definir a senha do root.Existem muitas soluções para esse problema, mas para a minha situação, eu só precisava corrigir a DATA na máquina / servidor ( Ubuntu 16.04 Server ).
i) Verifique a data do seu servidor e corrija-a.
ii) Executar
sudo /etc/init.d/mysql restart
Isso deve começar.
fonte
Eu estava recebendo o erro porque estava executando o MAMP e meu arquivo .sock estava em um local diferente. Acabei de adicionar um link simbólico onde o aplicativo achava que deveria apontar para onde realmente estava e funcionou como um encanto.
fonte
Também descobri que este era um problema de permissões. Comparei os arquivos MySQL com uma instalação funcional (ambos no Debian 6 squeeze) e tive que fazer as seguintes alterações de propriedade (onde
mydatabase
estão os bancos de dados que você possui).Propriedade
mysql:mysql
:Propriedade
mysql:root
:Propriedade
mysql:adm
:fonte
Para mim - esse foi simplesmente um caso do MySQL demorando muito para carregar. Eu tenho mais de 100.000 tabelas em um dos meus bancos de dados e ele acabou sendo iniciado, mas obviamente precisa demorar muito tempo nesse caso.
fonte
Se você estiver usando a versão Micro da AWS (Amazon Web Services), é um problema de memória. Quando eu corri
do terminal diria
Então, tentei o seguinte e isso simplesmente falharia.
Após muita pesquisa, descobri que você precisa criar um arquivo de permuta para o MySQL para ter memória suficiente. As instruções estão listadas: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html .
Então, eu fui capaz de reiniciar o mysqld.
fonte
você sempre pode iniciar o servidor mysql especificando o local do arquivo mysql.sock usando a
--socket
opçãoIsso funcionará mesmo se o local do arquivo de soquete estiver especificado em um local diferente no arquivo my.cnf.
fonte
Para aqueles cuja solução não funcionou, tente:
verifique se my.cnf está presente
e verifique se você tem apenas um endereço de ligação da seguinte maneira:
endereço de ligação = 127.0.0.1
Caso contrário, esse pode ser o problema, basta sair do nano e salvar o arquivo.
e
service mysql start
note que se você não possui o nano (é um editor de texto), basta instalá-lo
apt-get install nano
e, uma vez em apenas pressionar Ctrl + X para sair, não se esqueça de dizer Y para salvar e usar o mesmo arquivo)fonte
Eu também tive esse problema ao tentar iniciar o servidor, muitas das respostas aqui que dizem apenas para iniciar o servidor não funcionaram. A primeira coisa que você pode fazer é executar o seguinte para verificar se há algum erro de configuração:
Eu tive um erro que apareceu:
Um simples
grep -HR "innodb-online-alter-log-max-size" /etc/mysql/
me mostrou exatamente qual arquivo continha a linha incorreta, então eu a removi do arquivo.Então, verificando meu
/var/log/mysql/error.log
arquivo, eu tinha:Com base nessa pergunta, a solução aceita não funcionaria porque eu não conseguia nem iniciar o servidor, então segui o que alguns comentários disseram e excluí meus arquivos
/var/lib/mysql/ib_logfile0
e/var/lib/mysql/ib_logfile1
.Isso permitiu que o servidor iniciasse e eu consegui conectar e executar consultas, no entanto, ao verificar meu arquivo de log de erros, ele foi rapidamente preenchido com várias dezenas de milhares de linhas como esta:
Com base em uma sugestão daqui , para corrigir isso, fiz um mysqldump e restaurei todos os bancos de dados (veja o link para várias outras soluções).
Tudo parece estar funcionando como esperado agora.
fonte
/var/log/mysql/error.log
ajudou no meu caso. Não foi[ERROR] Can't init tc log
que foi rapidamente corrigido usando seguinte resposta: dba.stackexchange.com/a/185006/163583Adicionando
para a lista de pramaters na sua conexão funcionou para mim.
fonte
Isso foi bom o suficiente para mim
fonte
Encontrei esta questão hoje. Nenhuma dessas respostas forneceu a correção. Eu precisava executar os seguintes comandos (encontrados aqui https://stackoverflow.com/a/20141146/633107 ) para o meu serviço mysql iniciar:
Isso foi parcialmente indicado pelos seguintes erros em /var/log/mysql/error.log:
Eu também vi o erro de disco cheio, mas apenas ao executar comandos sem o sudo. Se a verificação de permissões falhar, ele relata o disco cheio (mesmo quando sua partição nem sequer está perto).
fonte
CentOS 7, 64 bits. Instalação nova.
No meu caso, o erro ocorreu porque eu não tinha o servidor MySQL e o cliente MySQL certos instalados.
Usando
yum
, eu removimariadb
e mysql-community edition. Eu baixei as rpm para o cliente e servidor no site oficial do MySQL e instalei o servidor e o cliente.Ao instalar o servidor, me foi mostrada uma mensagem de que a senha da conta raiz do MySQL estava armazenada em um arquivo que eu podia visualizar
sudo cat /root/.mysql_secret
.Então, depois de instalar o cliente e o servidor, verifiquei se o MySQL estava funcionando (acho que reinicializei antes) com o comando
sudo service mysql status
e obtive o resultado.Eu entrei em MySQL usando a senha do arquivo .mysql_secret:
mysql -uroot -pdxM01Xfg3DXEPabpf
. Observe quedxM01Xfg3DXEPabpf
é a senha mencionada no arquivo .mysql_secret.e, em seguida, digite o seguinte comando no prompt do mysql para alterar a senha do root:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somePassword');
Tudo funcionou bem a partir de então.
fonte
Trabalhou para mim, estou usando Centos
fonte
Isso não responde diretamente à sua pergunta, mas um subconjunto dela, usando o PythonAnywhere. Eu continuava tropeçando nessa pergunta ao procurar uma correção, então estou adicionando aqui na esperança de que ela ajude outras pessoas na minha situação.
O PythonAnywhere decidiu alterar os nomes de host de conexão com o banco de dados para melhorar a eficiência e a confiabilidade, conforme detalhado aqui :
Portanto, você precisará atualizar seu nome de host para o valor destacado acima.
fonte
Acabei de ter esse problema. depois de um dia de verificação, finalmente eu tenho a resposta com que O arquivo mysql.sock é criado quando o MariaDB é iniciado e é removido quando o MariaDB é desligado. Não existirá se o MariaDB não estiver em execução. talvez você não tenha instalado o MariaDB. VOCÊ PODERIA SEGUIR AS INSTRUÇÕES ABAIXO: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST
fonte
Eu tive esse erro de soquete e basicamente se resumiu ao fato de o MySQL não estar sendo executado. Se você executar uma instalação nova, certifique-se de instalar 1) o pacote do sistema e 2) o instalador do painel (mysql.prefPane). O instalador do painel permitirá que você vá para suas Preferências do Sistema e abra o MySQL e, em seguida, instale uma instância.
Observe que, em uma nova instalação, eu precisava reiniciar o computador para que as alterações entrassem em vigor corretamente. Após uma reinicialização, recebi uma nova instância em execução e consegui abrir uma conexão com o host local sem nenhum problema.
Além disso, eu aparentemente tinha versões anteriores do MySQL instaladas, mas removi o painel, o que facilita a execução de uma instância do MySQL para usuários de Mac.
Um bom link para esse processo de reinstalação: http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/
fonte