Я пытаюсь установить MySQL 5.6 на 64-битную версию CentOS 6.3, используя .rpms, предоставленные MySQL. Я загрузил все 64-битные Linux rpms в /usr/local/src/mysql
и выполнил rpm -Uvh *
.
При установке возникла ошибка, из-за которой я больше не могу узнать сообщение об ошибке. Итак, я попытался сделать rpm -Uvh *
снова и это говорит
Preparing... ########################################### [100%]
package MySQL-devel-5.6.6_m9-1.linux2.6.x86_64 is already installed
package MySQL-embedded-5.6.6_m9-1.linux2.6.x86_64 is already installed
package MySQL-shared-compat-5.6.6_m9-1.linux2.6.x86_64 is already installed
package MySQL-shared-5.6.6_m9-1.linux2.6.x86_64 is already installed
package MySQL-client-5.6.6_m9-1.linux2.6.x86_64 is already installed
Делать rpm -e MySQL*
заявляет, что все они не установлены:
error: package MySQL-client-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
error: package MySQL-devel-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
error: package MySQL-embedded-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
error: package MySQL-server-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
error: package MySQL-shared-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
error: package MySQL-shared-compat-5.6.6_m9-1.linux2.6.x86_64.rpm is not installed
Я пробовал запустить mysql с помощью /etc/init.d/mysql start
и /etc/init.d/mysqld start
но возвращенная ошибка не была таким файлом или каталогом.
Я попытался rpm --rebuilddb
и попытался установить и удалить, но получил ту же ошибку.
Я как бы застрял в том, что делать дальше. Какие-либо предложения?
Мне удалось установить mysql, удалив и переустановив rpm.
Теперь, когда я пытаюсь запустить mysql,
/etc/init.d/mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]mysql/localhost.localdomain.pid).`
Я попытался mv /etc/my.cnf /etc/my.cnf.bak
и /etc/init.d/mysql start
но это дало ту же ошибку.
У вас включен SELinux? Возможно, пакеты MySQL не созданы для работы с SELinux (нередко для сторонних пакетов) и что он блокирует доступ к созданию файла PID. Быстрый и грязный тест - установить для вашего контекста SELinux значение Permissive (или Disabled).
# setenforce permissive
Если это не так, посмотрите сами права доступа к файлам.
Для получения дополнительной информации о SELinux:
Документация Red Hat SELinux для RHEL6
Вики проекта SELinux
Пакеты, вероятно, установлены, но если это те, которые вы загрузили с mysql.com, то фактические имена пакетов указаны в нижнем регистре, даже если файл имена в смешанном регистре.
После этого пакеты mysql.com не на 100% двоично совместимы с CentOS, и гораздо больше, чем это, скорее всего, сломается. Если вы не совсем необходимость 5.6, то, вероятно, лучше всего использовать 5.5 из надежного репозитория, такого как remi, до тех пор, пока не станут доступны совместимые пакеты.
При запросе rpmdb используется пакет название, а не пакет имя файла. Вы можете получить имя пакета из файла пакета с помощью rpm -qp --qf "%{name}\n" <file>
.