Подключение MySQL через localhost не работает, но 127.0.0.1 работает

Обсуждение установки и настройки поддерживаемых серверов баз данных, а также работы с ними.
Ответить
Аватара пользователя
KyKyIIIKuH
Сообщения: 105
Зарегистрирован: Ср мар 14, 2018 11:04 am

Подключение MySQL через localhost не работает, но 127.0.0.1 работает

Сообщение KyKyIIIKuH » Чт окт 03, 2019 1:30 pm

Mysql 5.7
php7.2
php пробовал менять на другой, не помогло.
После установки панели подключение через localhost не подключается к базе, а когда указываешь 127.0.0.1 все отлично

Заметил что у меня нету файла mysql.sock

Код: Выделить всё

[root ~]# ls -lh /var/run/mysqld/
итого 4,0K
-rw-r-----. 1 mysql mysql 5 сен 25 10:49 mysqld.pid
На другом сервере в папке /var/run/mysqld/ файл mysql.sock присутствует.

Код: Выделить всё

[root ~]# ls -lh /var/run/mysqld/
итого 8,0K
-rwxrwxrwx. 1 mysql mysql 5 июл 26 11:38 mysqld.pid
srwxrwxrwx. 1 mysql mysql 0 июл 26 11:38 mysql.sock
-rwxrwxrwx. 1 mysql mysql 5 июл 26 11:38 mysql.sock.lock
этот файл влияет на подключение через localhost ?

Аватара пользователя
sbury
Сообщения: 434
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Подключение MySQL через localhost не работает, но 127.0.0.1 работает

Сообщение sbury » Пт окт 04, 2019 7:18 am

проверить два момента

1)
****
/etc/my.cnf - должен быть файл не ссылка(!)

усли это не так , то выполнить

rm -rf /etc/my.cnf
cp -f /etc/brainy/conf/packet_manager/mysql/my.cnf /etc/my.cnf
****

2)
***
/usr/lib64/mysql должна быть ссылка(!) на актуальную библиотеку текущей базы (например /usr/lib64/mysql -> /usr/lib64/mysql56)

если не так востановить ссылку
для этого можно воспользоваться скриптом

Код: Выделить всё

#! /bin/bash

ver56="5.6.40"
ver57="5.7.16"
ver80="8.0.11"
ver101="10.1.20"
ver102="10.2.12"
ver103="10.3.15"

#
#  Type 1
#
ver=`mysql -V | grep -Eoi 'Distrib [0-9\.]+'  | grep -Eo '[0-9\.]+'`
echo ""
echo "Found Version type 1: "${ver}
echo ""

yum clean all
yum -y install mariadb-libs

if [[ -d "/usr/lib64/mysql" ]];then
  res=`ls -l /usr/lib64/mysql`
  echo "Found:"
  echo ""${res}
  echo "No problems. Exit"
  echo ""
  exit 0
fi

if [ "${ver}" == ${ver56} ];then
  rel="mysql56"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == ${ver57} ];then
  rel="mysql57"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.1.20" ];then
  rel="mysqldb10"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.2.12" ];then
  rel="mysqldb10.2"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.3.15" ];then
  rel="mysqldb10.3"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

#
#  Type 2
#
ver=`mysql -V | grep -Eoi 'Ver [0-9\.]+'  | grep -Eo '[0-9\.]+'`
echo ""
echo "Found Version type 2: "${ver}
echo ""

if [ "${ver}" == "8.0.11" ];then
  rel="mysql80"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

echo "Server SQL not found"

если ссылкой что то не так и вы ее решили сделать в ручную через ln -s , это тоже допускается, только после этого подать команду
ldconfig


ну и в самом конце
systemctl restart mysqld


в ближайшем обновлении это все будет исправлено

Аватара пользователя
KyKyIIIKuH
Сообщения: 105
Зарегистрирован: Ср мар 14, 2018 11:04 am

Re: Подключение MySQL через localhost не работает, но 127.0.0.1 работает

Сообщение KyKyIIIKuH » Пт окт 04, 2019 8:31 am

sbury писал(а):
Пт окт 04, 2019 7:18 am
проверить два момента

1)
****
/etc/my.cnf - должен быть файл не ссылка(!)

усли это не так , то выполнить

rm -rf /etc/my.cnf
cp -f /etc/brainy/conf/packet_manager/mysql/my.cnf /etc/my.cnf
****

2)
***
/usr/lib64/mysql должна быть ссылка(!) на актуальную библиотеку текущей базы (например /usr/lib64/mysql -> /usr/lib64/mysql56)

если не так востановить ссылку
для этого можно воспользоваться скриптом

Код: Выделить всё

#! /bin/bash

ver56="5.6.40"
ver57="5.7.16"
ver80="8.0.11"
ver101="10.1.20"
ver102="10.2.12"
ver103="10.3.15"

#
#  Type 1
#
ver=`mysql -V | grep -Eoi 'Distrib [0-9\.]+'  | grep -Eo '[0-9\.]+'`
echo ""
echo "Found Version type 1: "${ver}
echo ""

yum clean all
yum -y install mariadb-libs

if [[ -d "/usr/lib64/mysql" ]];then
  res=`ls -l /usr/lib64/mysql`
  echo "Found:"
  echo ""${res}
  echo "No problems. Exit"
  echo ""
  exit 0
fi

if [ "${ver}" == ${ver56} ];then
  rel="mysql56"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == ${ver57} ];then
  rel="mysql57"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.1.20" ];then
  rel="mysqldb10"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.2.12" ];then
  rel="mysqldb10.2"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

if [ "${ver}" == "10.3.15" ];then
  rel="mysqldb10.3"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

#
#  Type 2
#
ver=`mysql -V | grep -Eoi 'Ver [0-9\.]+'  | grep -Eo '[0-9\.]+'`
echo ""
echo "Found Version type 2: "${ver}
echo ""

if [ "${ver}" == "8.0.11" ];then
  rel="mysql80"
  lin="ln -s /usr/lib64/"${rel}" /usr/lib64/mysql"
  ${lin}
  ldconfig
  echo ${rel}
  echo ${lin}
  echo "DONE"
  exit 0
fi

echo "Server SQL not found"

если ссылкой что то не так и вы ее решили сделать в ручную через ln -s , это тоже допускается, только после этого подать команду
ldconfig


ну и в самом конце
systemctl restart mysqld


в ближайшем обновлении это все будет исправлено
спасибо ;)

Ответить