Erro: Can't connect to [local] MariaDB server
Um cliente MariaDB em Unix pode conectar ao servidor mysqld de dois modos diferentes: sockets Unix, que conectam através de um arquivo no sistema de arquivos (padrão /tmp/mysqld.sock) ou TCP/IP, que conecta através um número de porta. Sockets Unix são mais rápidos que TCP/IP mas só podem ser usados quando conectados ao servidor no mesmo computador. Sockets Unix são usados se você não especificar um nome de máquina ou se você especificar o nome de máquina especial localhost.
No Windows, se o servidor mysqld está rodando no 9x/Me, você só pode conectar via TCP/IP. Se o servidor estiver rodando no NT/2000/XP e o mysqld é iniciado com --enable-named-pipe, você também pode conectar com named pipes. O nome do named pipes é MySQL. Se você não der um nome de máquina quando conectar ao mysqld, um cliente MariaDB tentará conectar primeiro ao named pipe, e se isto não funcionar ele irá conectar a porta TCP/IP. Você pode forçar o uso de named pipes no Windows usando . como nome de máquina.
O erro (2002) Can't connect to ... normalmente significa que não há um servidor MariaDB rodando no sistema ou que você está usando um arquivo socket ou porta TCP/IP errado ao tentar conectar so servidor mysqld.
Inicie verificando (usando ps ou gerenciador de tarefas do Windows) que há um processo chamado mysqld executando em seu sistema! Se não houver nenhum processo mysqld, você deve iniciar um. Leia "Problemas Inicializando o Servidor MySQL".
Se um processo mysqld estiver em execução, você pode verificar o servidor tentando estas diferentes conexões (o número da porta e o caminho do socket devem ser diferente em sua consiguração, é claro):
shell>mysqladmin versionshell>mysqladmin variablesshell>mysqladmin -h `hostname` version variablesshell>mysqladmin -h `hostname` --port=3306 versionshell>mysqladmin -h 'ip for your host' versionshell>mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
Note o uso de aspas para traz em vez de aspas para frente com o comando hostname; isto provoca a saída de hostname (que é, o nome de máquina atual) para ser substituído no comando mysqladmin.
Aqui estão algumas razões pela quais o erro Can't connect to local MariaDB server pode ocorrer:
mysqldnão está rodando.- Você está rodando em um sistema que usa MIT-pthreads. Se você estiver executando em um sistema que não possui threads nativas, o
mysqldusa o pacote MIT-pthreads. Leia "Sistemas Operacionais suportados pelo MySQL". No entanto, nem todas as versões de MIT-pthreads suportam sockets Unix. Em um sistema sem suporte a sockets você sempre deve especificar o nome de máquina explicitamente ao conectar ao servidor. Tente usar este comando para verificar a conexão com o servidor:shell>
mysqladmin -h `hostname` version - Alguém removeu o socket Unix que o
mysqldutiliza (por padrão/tmp/mysqld.sock). Você deve ter um trabalhocronque remove o socket MariaDB (por exemplo, um trbalhoque remove arquivos antigos do diretório/tmp). Você sempre pode executarmysqladmin versione verificar que o socket que omysqladminestá tentando usar realmente existe. A correção neste caso é alterar o trabalhocronpara não removermysqld.sockou para colocar o socket em outro local. Leia Seção A.4.5, "Como Proteger ou AlterarHow to Protect or Change the MariaDB Socket File/tmp/mysql.sock". - Você iniciou o servidor
mysqldcom a opção--socket=/path/to/socket. Se você alterar o caminho do socket para o servidor, você também deve notificar o cliente MariaDB sobre o novo caminho. Você pode fazer isto fornecendo o caminho do socket como um argumento para o cliente. Leia Seção A.4.5, "Como Proteger ou AlterarHow to Protect or Change the MariaDB Socket File/tmp/mysql.sock". - Você está usando Linux e uma thread finalizou (core dumped). Neste caso você deve matar as outras threads
mysqld(por exemplo, com o scriptmysql_zapantes de você poder iniciar um novo servidor MySQL. Leia Seção A.4.1, "O Que Fazer Se o MariaDB Continua Falhando". - Você pode não ter privilégios de leitura e escrita tanto no diretório que guarda o arquivo de socket quanto no próprio arquivo de socket. Neste caso você deve mudar o privilégio do diretório/arquivo ou reiniciar
mysqldpara que ele use um diretorio que você possa utilizar.
Se você obter a mensagem de erro Can't connect to MariaDB server on alguma_maquina, você pode tentar o seguinte para descobrir qual é o problema:
- Verifique se o servidor está funcionando fazendo
telnet seu-servidor num-porta-tcp-ipe pressione Enter algumas vezes. Se houver um servidor MariaDB em execução nesta porta você deve obter uma resposta que inclui o número da versão do servidor MariaDB em execução. Se você obter um erro comotelnet: Unable to connect to remote host: Connection refused, então não há nenhum servidor rodando na porta dada. - Tente conectar ao daemon
mysqldna máquina local e verifique a porta TCP/IP que omysqldestá configurado para usar (variávelport) commysqladmin variables. - Verifique se o seu servidor
mysqldnão foi iniciado com a opção--skip-networking.