terça-feira, 7 de maio de 2013

Atualização direta do MySQL 5.1: O servidor sair sem atualizar arquivo PID

Original Post: http://anothermysqldba.blogspot.com/2013/05/upgrading-directly-from-mysql-51-server.html

Deparei com isso outro dia ... 


Sistema foi uma instalação do Oracle Linux muito básico que foi instalado e criado por outra pessoa.
(Oracle Unbreakable Linux Servidor Empresarial (Kernel 2.6.39-400.17.1.el6uek.x86_64))
Parecia que eles queriam que o sistema instalado e funcionando, em seguida, ter-me entrar para fazer o resto.

By the way, se a Oracle vai levar RedHat Linux e melhorá-lo para fazer a sua própria versão, eles poderiam pelo menos atualizar seus produtos para trabalhar com ele? MySQL se tornou popular porque era mais fácil para as pessoas a começar a partir das distribuições, tendo 5.1ainda em sua própria distribuição é apenas estranho.

Bem, a primeira coisa a fazer é atualizar desde que a Oracle Linux vem com o MySQL 5.1.

# rpm -qa |grep mysql
mysql-server-5.1.66-2.el6_3.x86_64
mysql-5.1.66-2.el6_3.x86_64
mysql-libs-5.1.66-2.el6_3.x86_64

Eu costumava 5.5 para este exemplo ....
-rw-r--r--. 1 root root 14976016 Apr 30 06:07 MySQL-client-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 4968092 Apr 30 06:08 MySQL-devel-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 41827172 Apr 30 06:09 MySQL-server-5.5.31-2.el6.x86_64.rpm
-rw-r--r--. 1 root root 3970056 Apr 30 06:09 MySQL-shared-compat-5.5.31-2.el6.x86_64.rpm 

# rpm -Uhv *.rpm
error: Failed dependencies

Então eu tive que remover os pacotes de dependência em primeiro lugar, e nem mesmo sei por que que realmente eles tinham instalado.

# rpm -Uhv *.rpm 
Agora você vem a triste realidade que muitos de nós já vimos ...

"Recomenda-se um despejo manual e restaurar usando mysqldump.

A atualização manual é necessária.

- Certifique-se que você tem um completo, backup de trabalho de seus dados e my.cnf
arquivos
- Desligue o servidor MySQL limpa
- Retire os pacotes do MySQL existentes. Normalmente, este comando
listar os pacotes que você deve remover:
rpm-qa | grep-i '^ mysql-'

Você pode optar por usar 'rpm - nodeps-ev <package-name>' para remover
a embalagem que contém a biblioteca partilhada mysqlclient. O
biblioteca será reinstalado pelo pacote MySQL-shared-compat.
- Instale os novos pacotes do MySQL fornecidos pela Oracle e / ou suas afiliadas
- Certifique-se de que o servidor MySQL é iniciado
- Execute o programa 'mysql_upgrade "

É por isso que muitas pessoas poderiam ser preso no MySQL 5.1, porque eles estão morrendo de medo de fazer essas alterações. Eu tive sorte uma vez que esta era uma nova instalação de outra forma sim manter um backup seria o próximo passo.

Desde que me queria para remover tudo, então não há razão para dizer com MySQL 5.5 então me mudei para o MySQL 5.6. Depois de retirar os pacotes anteriores (rpm-e) e instalar o novo (rpm-ihv), tive a seguinte
# rpm -qa | grep MySQL
MySQL-client-5.6.11-2.el6.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
MySQL-shared-compat-5.6.11-2.el6.x86_64
MySQL-server-5.6.11-2.el6.x86_64
MySQL-devel-5.6.11-2.el6.x86_64

Então, verifique se há um arquivo my.cnf primeiro. Desde que eu poderia querer fazer edições se alguém tivesse colocado no lugar.
# ls -al /etc/my.cnf
ls: cannot access /etc/my.cnf: No such file or directory


Eu decido manter padrões para a finalidade deste exemplo e deixei faltando.
# /etc/init.d/mysql start
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/localhost.localdomain.pid).

Ela tem de ser capaz de começar antes mysql_upgrade pode ser aplicada.

Eu tentei pular subsídios

# /etc/init.d/mysql start --skip-grant
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/localhost.localdomain.pid). 

Na realidade, o registo de erros mostrou a verdadeira questão: "InnoDB: Não foi possível abrir ou criar o tablespace do sistema"

A questão era que eles construíram as partições horrivelmente e só não tinha espaço para o banco de dados. Quando você deve perceber isso? Imediatamente. Primeira coisa que você deve fazer é verificar o que as partições do sistema são para um sistema que você está construindo. Mas isso seria anular o ponto deste post no blog se eu apontou que em primeiro lugar.

Qual é a moral de tudo isso? Se você já viu o erro "O servidor sair sem atualizar arquivo PID"a primeira coisa que você deve fazer é verificar o log de ​​erro. Ele vai lhe dizer exatamente qual é o problema.