Problemas Executando o mysql_install_db
O propósito do script mysql_install_db é gerar novas tabelas de privilégios. Ele não irá afeter nenhum outro dado! Ele também não fará nada se você já tem a tabela de privilégio do MariaDB instalada.
Se você deseja refazer suas tabelas de privilégios, você deve desligar o servidor mysqld, se ele já está executando, então faça assim:
mv diretorio-dados-mysql/mysql diretorio-dados-mysql/mysql-old mysql_install_db
Esta seção relaciona alguns problemas que podem ser encontrados ao executar mysql_install_db:
mysql_install_dbnão instala as tabelas de permissõesVocê pode descobrir que o
mysql_install_dbfalha ao instalar as tabelas de permissões e termina depois de mostrar as seguintes mensagens:starting mysqld daemon with databases from XXXXXX mysql daemon ended
Neste caso, você deve examinar o arquivo de log com muito cuidado! O log deve se encontrar no diretório
XXXXXXnomeado pela mensagem de erro, e deve indicar porquemysqldnão inicializa. Se você não entende o que aconteceu, inclua o log quando você postar um relato de erro usandomysqlbug! Leia "Como relatar erros ou problemas".- Já existe um daemon
mysqldsendo executadoNeste caso, provavelmente não será necessário executar o
mysql_install_db. Você deve executar omysql_install_dbsomente uma vez, quando você instalar o MariaDB da primeira vez. - Instalair um segundo daemon
mysqldnão funciona quando um daemonestiver em execução.
Isto pode acontecer quando você já tiver uma instalação do MariaDB existente, mas deseja colocar uma nova instalação em um diferente lugar (por exemplo, para testes, ou talvez você simplesmente deseja executar duas instalações ao mesmo tempo). Geralmente o problema que ocorre quando você tenta executar o segundo servidor é que ele tenta usar o mesmo socket e porta que o outro. Neste caso você irá obter a mensagem de erro:
Can't start server: Bind on TCP/IP port: Address already in useouCan't start server: Bind on unix socket.... Leia "Executando Múltiplos MariaDB Servers na Mesma Máquina". - Você não tem direito de escrita no diretório
/tmpSe você não tem direito de escrita para criar um arquivo socket no local padrão (em
/tmp) ou permissão para criar arquivos temporáris em/tmp,você irá obter um erro quando executarmysql_install_dbou quando iniciar ou usarmysqld.Você pode especificar socket e diretório temporário diferentes, como segue:
shell>
TMPDIR=/algum_dir_tmp/shell>MYSQL_UNIX_PORT=/algum_dir_tmp/mysqld.sockshell>export TMPDIR MYSQL_UNIX_PORTalgum_dir_tmpdeve ser o caminho para o mesmo diretório no qual você tem permissão de escrita. Leia Apêndice F, Variáveis de Ambientes do MariaDB.Depois disto você deve estar apto para executar
mysql_install_dbe iniciar o servidor com estes comandos:shell>
scripts/mysql_install_dbshell>BINDIR/mysqld_safe & mysqldfalha imediatamenteSe você estiver executando RedHat Versão 5.0 com uma versão de
glibcanterior a 2.0.7-5 você deve ter certeza que você instalou todos os patches para aglibc! Existe muita informação sobre isto nos arquivos das listas de mensagens do MariaDB. Links para os arquivos de correio estão disponíveis online em http://lists.mysql.com/. Veja também "Notas Linux (Todas as versões)".Você pode também iniciar o
mysqldmanualmente usando a opção--skip-grant-tablese adicionar a informação de privilégios usando oMariaDB:shell>
BINDIR/mysqld_safe --skip-grant-tables &shell>BINDIR/mysql -u root mysqlDo
MariaDB, execute manualmente os comandos SQL emmysql_install_db. Tenha certeza de executarmysqladmin flush_privilegesoumysqladmin reloadapós dizer ao servidor para recarregar as tabelas de permissões.