Por que não consigo iniciar o mysqld_safe no Red Hat Enterprise Linux (RHEL)?

1

Eu baixei o mysql-5.1.44.tar.gz e o instalei com os seguintes comandos:

$ ./configure
$ make
$ make install

Tudo instalado sem nenhum erro. Em seguida, tentei iniciar o servidor mysql, emitindo o seguinte comando:

$ mysqld_safe --user=mysql &
100310 13:25:56 mysqld_safe Logging to '/usr/local/var/perfportal2.err'.
100310 13:25:56 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
100310 13:25:56 mysqld_safe mysqld from pid file /usr/local/var/perfportal2.pid ended

$ cat /usr/local/var/myserver.err 
100310 13:25:56 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
/usr/local/libexec/mysqld: Table 'mysql.plugin' doesn't exist
100310 13:25:56 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100310 13:25:56 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
100310 13:25:56 mysqld_safe mysqld from pid file /usr/local/var/perfportal2.pid ended

Meu palpite é que o processo de instalação não criou o diretório de dados.

Alguma sugestão sobre o que devo fazer?

    
por Hai Vu 10.03.2010 / 22:30

2 respostas

3

Se você executou make install e já tinha o pacote mysql-server instalado, provavelmente você tinha um esquema de banco de dados mysql pré-existente em / var / lib / mysql. A versão incluída com o RHEL5 é a 5.0.77, o que poderia explicar o erro de upgrade do mysql, já que esse script atualiza o esquema entre as versões do MySQL. O erro também pode ser muito semelhante se você não criou o esquema inicial como parte de sua instalação.

Se você vai compilar a partir do código-fonte e não especificar locais de instalação, você precisa primeiro remover os pacotes do sistema do mysql. Se você deseja manter os pacotes do sistema e a instalação de origem, que às vezes há argumentos, é necessário ter cuidado para não pular todo o pacote do sistema. Isso normalmente significa instalar sua origem em um local como /usr/local/mysql em oposição ao padrão de /usr/local . Você pode conseguir isso com ./configure --prefix=/usr/local/mysql . Há mais detalhes aqui e melhores práticas que não vou elaborar mais adiante.

Embora possa haver boas razões para compilar a partir da fonte, você pode reconsiderar a sua, pois pode não ser necessário para você.

rpm -qa | grep mysql exibirá todos os pacotes atualmente instalados. Provavelmente mysql-server e mysql-client .

Caso contrário, você não seguiu o procedimento da documentação. Mesmo se você fez, você terá que repeti-lo depois de remover os pacotes do MySQL.

De INSTALL-SOURCE , que foi incluído no tarball do mysql-5.1.44:

2.3.1. Source Installation Overview

   The basic commands that you must execute to install a MySQL source
   distribution are:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe --user=mysql &
    
por 10.03.2010 / 22:38
0
  1. Instale o software dos pacotes !!! Diga Não para compilar o código de origem. É 2010 agora, sabe?
    Se não houver um pacote para o seu software, você deve criar você mesmo .
  2. A mensagem de erro diz claramente que você deve executar mysql_upgrade
  3. Você também pode tentar executar mysql_install_db se acima não funcionar.
por 10.03.2010 / 22:38