В CentOS EL 6 и, возможно, в более ранних версиях есть один способ попасть в этот же беспорядок.
Установите CentOS EL6 с минимальной установкой.Например, я использовал kickstart для установки следующего:
%packages
@core
acpid
bison
cmake
dhcp-common
flex
gcc
gcc-c++
git
libaio-devel
make
man
ncurses-devel
perl
ntp
ntpdate
pciutils
tar
tcpdump
wget
%end
Вы обнаружите, что одной из зависимостей в приведенном выше списке является mysql-libs
.Я обнаружил, что моя система имеет значение по умолчанию my.cnf
в /etc
, и оно содержит:
[mysqld]
dataddir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
При сборке из Generic Linux (Architecture Independent), Compressed TAR Archive
каталогом данных по умолчанию является /usr/local/mysql/data
, который конфликтует с /etc/my.cnf
уже присутствует, что определяет datadir=/var/lib/mysql
.Кроме того, pid-file
, определенный в том же файле, не имеет разрешений для пользователя / группы mysql для записи в него в /var/run/mysqld
.
Быстрое решение - mv /etc/my.cnf /etc/my.cnf.old
, которое должно заставить вашу процедуру с исходным кодом работать.
Конечно, опыт отличается от того, используете ли вы исходные RPM.