Meu arquivo / etc / hosts fica assim:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Descobri ao construir o servidor que, embora eu pudesse executar ping localhost com sucesso, em certos arquivos de configuração de serviços como Postfix, Apache e Dovecot, eu precisava especificar em 127.0.0.1
vez de localhost
fazê-los funcionar.
Eu também precisava alterar os arquivos de configuração de determinados sites direcionados a bancos de dados, que costumavam localhost
se conectar ao MySQL.
Eu tentei várias modificações no hosts
arquivo, mas nada que eu tentei até agora ajudou.
O servidor está executando o Ubuntu 12.04.02 LTS. Ele não possui o selinux instalado e a situação acima permanece mesmo após a configuração das políticas padrão do IPtables para aceitá-las e liberá-las.
127.0.0.1
(exceto um que é%
). Acho que isso provavelmente revela o suficiente para que eu conserte, então provavelmente aceitarei sua resposta em pouco tempo.localhost
como emsocket
vez deTCP
).A maioria dos clientes MySQL é estranha no fato de que, se você especificar o host como
localhost
, eles o aliam a uma conexão de soquete em vez de uma conexão TCP. Suas opções são ficar com127.0.0.1
ou, se o cliente suportar (como o binário da CLI do mysql faz com a--protocol
flag), forçá-lo a usar TCP em vez de um soquete unix.fonte
127.0.0.1
vez delocalhost
no campo hostname durante a instalação, os caminhos da instalação ficarão confusos, causando outros erros, mas a especificação de localhost falhará ao conectar o banco de dados! O que causou essa situação? Por que eu tenho isso?socket = /var/run/mysqld/mysqld.sock
emmy.cnf
eo arquivo é existente, de propriedade de mysql com permissões 777. Obrigado.127.0.0.1
ele funcionará (mas o script usará a entrada posteriormente e falhará porque espera um nome resolvível comolocalhost
), mas se eu usar alocalhost
conexão para criar o banco de dados falhará.Uma coisa a observar se as concessões estão corretas é se você estiver usando o MariaDB, ocorreu um erro que causou esse comportamento exato nas versões 10.0.1 e 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356
fonte
Você pode verificar a permissão como esta:
Se estiver escutando 0 0.0.0.0:*, significa que todos podem acessar esse mysql.
você pode editar a ligação para isso no arquivo my.conf. No caminho padrão do Linux, isso é:
Adicione essas linhas no arquivo my.conf para permitir o ip que você deseja.
fonte
O PHP ainda está tentando usar o local padrão do soquete. Esse problema pode aparecer se você tiver movido a pasta MariaDB / MySQL de / var / lib / mysql para outro local. Para resolver o problema, você precisa definir a localização do novo soquete no arquivo /etc/php.ini .
fonte
Resolvi esse problema criando um link simbólico
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
,. Mas primeiro tenho que criar uma pasta/var/run/mysqld/
porque a pasta não existia inicialmente.fonte
Você precisa de um mysql.sock em / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
deve funcionar bem depois disso.
fonte