Problemas Inicializando o Servidor MariaDB


Se você for usar tabelas que suportem transações (BDB, InnoDB), primeiro deve-se criar um arquivo my.cnf e configurar opções de inicialização para os tipos de tabelas que você planeja usar. Leia Tipos de Tabela do MariaDB.

Geralmente, você inicia o servidor mysqld de uma das três maneiras:

Quando o daemon mysqld inicia, ele altera o diretório para o diretório de dados. É neste diretório que ele espera gravar arquivos de log e o arquivo pid (com o ID do processo) e onde ele espera encontrar os bancos de dados.

A localização do diretório de dados é especificada quando a distribuição é compilada. Entretanto, se o mysqld espera encontrar o diretório de dados em lugar diferente de onde ele realmente está no seu sistema, ele não funcionará corretamente. Se você tiver problemas com caminhos incorretos você pode encontrar quais opções o mysqld permite e quais são as configurações do caminho padrão chamando o mysqld com a opção --help. Você pode sobrescrever os padrões especificando os caminhos corretos como argumentos de linha de comando ao mysqld. (Estas opções também podem ser usadas com o mysqld_safe).

Normalmente você precisaria indicar ao mysqld somente o diretório base sob o qual o MariaDB é instalado. Você pode fazer isso usando a opção --basedir. Você pode também usar --help para conferir o efeito das opeções para se alterar o caminho (perceba que --help deve ser a opção final do comando mysqld. Por exemplo:

shell> EXECDIR/mysqld --basedir=/usr/local --help

Uma vez que você determina as configurações de caminho que você deseja, inicie o servidor sem a opção --help.

Qualquer que tenha sido o método utilizado para iniciar o servidor, se houver falha na inicialização, confira o arquivo de log para ver se você pode entender o porquê. Arquivos log estão localizados no diretório dados (normalmente /usr/local/mysql/data para uma distribuição binária, /usr/local/var para uma distribuição fonte, \mysql\data\mysql.err no Windows.) Procure no diretório de dados por arquivos com nomes no formato nome_maquina.err e nome_maquina.log onde nome_maquina é o nome do servidor. Então confira as últimas linhas destes arquivos:

shell> tail nome_maquina.err
shell> tail nome_maquina.log

Se você encontrar algo como o seguinte no arquivo log:

000729 14:50:10 bdb: Recovery function for LSN 1 27595 failed
000729 14:50:10 bdb: warning: ./test/t1.db: No such file or directory
000729 14:50:10 Can't init databases

Significa que você não inicializou o mysqld com --bdb-no-recover e o Berkeley DB encontrou algo errado com seus arquivos log quando ele tentou recuperar seus bancos de dados. Para poder continuar, você deve mover o antigo arquivo log Berkeley DB do diretório do banco de dados para outro lugar, onde poderá examiná-los posteriormente. Os arquivos log são nomeados log.0000000001, onde o número irá incrementar com o tempo.

Se você estiver executando o mysqld com suporte a tabelas BDB e o mysqld falhar no início, pode ser devido a alguns problemas com o arquivo de recuperação BDB. Neste caso você pode tentar iniciar o mysqld com --bdb-no-recover. Se isto ajudar, então você pode remover todos os arquivos log.* do diretório de dados e tentar iniciar o mysqld novamente.

Se você obter o seguinte erro, significa que algum outro programa (ou outro servidor mysqld) já está usando a porta TCP/IP ou socket mysqld está tentando usar:

Can't start server: Bind on TCP/IP port: Address already in use
 ou Can't start server: Bind on unix socket...

Use ps para ter certeza que você não tem outro servidor mysqld em execução. Se você não consegue encontrar outro servidor, você pode tentar executar o comando telnet sua_maquina numero_porta_tcp-ip e apertar ENTER várias vezes. Se você não obter uma mensagem como telnet: Unable to connect to remote host: Connection refused, algo está usando a mesma porta TCP/IP que o mysqld está tentando usar. Veja "Problemas Executando o mysql_install_db" e "Executando Múltiplos MariaDB Servers na Mesma Máquina".

Se o mysqld está atualmente em execução, você pode verificar as configurações que ele está usando executando este comando:

shell> mysqladmin variables

ou

shell> mysqladmin -h 'your-host-name' variables

Se você obter o Errcode 13, que significa Permission denied, ao iniciar o mysqld isto significa que você não pode ter o direito de leitura/criação de arquivos no diretório do banco de dados ou log. Neste caso você também deve iniciar o mysqld como usuário root ou alterar a permissão para os arquivos e diretórios envolvidos para uqe você tenha o direito de usá-los.

Se o mysqld_safe inicia o servidor mas você não consegue se conectar a ele, tenha certeza que você tem uma entrada no arquivo /etc/hosts que parece com isto:

127.0.0.1 localhost

Este problema só ocorre em sistemas que não possuem uma biblioteca thread funcional e para o qual o MariaDB deve estar configurado para usar MIT-pthreads.

Se você não consegue iniciar o mysqld você pode tentar criar um arquivo para rastreamento de erros (trace) para encontrar o problema. Leia Seção E.1.2, "Criando Arquivos Trace (Rastreamento)".

Se você estiver utilizando tabelas InnoDB, procure pelas opções especificas de inicialização do InnoDB. Leia "Opções de Inicialização do InnoDB".

Se você estiver usando tabelas BDB (Berkeley DB), você deve se familiarizar com as diferentes opções especificas de inicialização do BDB. "Opções de Inicialização do BDB".

Retornar