Page 1 of 1

Как в панеле сменить сокет у mysql?

Posted: Fri Jun 19, 2020 1:20 pm
by Alcorn
Поменял расположение файлов баз данных и сокет. В my.cnf в [mysqld] прописал новый datadir и socket, плюс в секции [client] также указал новый сокет. Далее в php.ini для mysql, mysqli и pdo указал новый сокет. Перезапустил службы. В итоге в консоли подключение к mysql работает, все сайты работают, phpmyadmin тоже работает, но vesta - нет. При попытке создать базу выдаётся "Connection to localhost failed". /usr/local/vesta/bin/v-add-database также выдаёт данное сообщение. Пришлось лезть дальше, расковырял /usr/local/vesta/func/db.sh, вывел в консоль $mysql_out и увидел реальную причину - "ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)".

Вопрос - где в vesta меняется сокет для mysql?

Re: Как в панеле сменить сокет у mysql?

Posted: Fri Jun 19, 2020 2:02 pm
by Alcorn
Внутри db.sh в отдельный файл по адресу /usr/local/vesta/conf/.mysql.localhost vesta сохраняет настройки mysql и затем под ним же пытается подрубиться. Естественно там никаких новых сокетов нет (подтягиваются дефолтные настройки) и всё это дело разваливается.

Code: Select all

mycnf="$VESTA/conf/.mysql.$HOST"
if [ ! -e "$mycnf" ]; then
	echo "[client]">$mycnf
	echo "host='$HOST'" >> $mycnf
	echo "user='$USER'" >> $mycnf
	echo "password='$PASSWORD'" >> $mycnf
	chmod 600 $mycnf
else
	mypw=$(grep password $mycnf|cut -f 2 -d \')
	if [ "$mypw" != "$PASSWORD" ]; then
		echo "[client]">$mycnf
		echo "host='$HOST'" >> $mycnf
		echo "user='$USER'" >> $mycnf
		echo "password='$PASSWORD'" >> $mycnf
		chmod 660 $mycnf
	fi
fi

mysql --defaults-file=$mycnf -e 'SELECT VERSION()' > $mysql_out 2>&1
в строке подключения mysql получаем ошибку. Пока как временное решение воткнул костыль - добавляем в оба блока условия echo "socket=путь_до_вашего_сокета" >> $mycnf и в самом файле /usr/local/vesta/conf/.mysql.localhost тоже указываем сокет. После этого vesta очнулась и нормально создала базу.

Re: Как в панеле сменить сокет у mysql?

Posted: Fri Jun 19, 2020 4:56 pm
by grayfolk
Пусть Веста на здоровье себе подключается по TCP.