Что должен содержать mysqld.sock, почему у меня нет его?

Смотрите на SmarterMail SmarterTools:

http://www.smartertools.com/SmarterMail/Features/Windows-Mail-Server-Software-Webmail-Exchange-Alternative.aspx?m=b

http://www.smartertools.com/SmarterMail/Pricing.aspx

они должны быть совершенно определенно разделены IMO.

22
задан 11 June 2011 в 13:56
7 ответов

Файл сокета на самом деле не содержит данные, он транспортирует его.. Это - специальный, необычный тип файла, созданного со специальными системными вызовами/командами. Это не обычный файл.

Это похоже на канал, который сервер и клиенты могут использовать для подключения и обмениваться запросами и данными. Кроме того, это только используется локально. Его значение просто как согласованное местоположение рандеву в файловой системе.

Создание простого файла и помещение его в том месте могут на самом деле вмешаться в сервер, создающий его..., и таким образом препятствовать тому, чтобы локальные клиенты соединились с сервером.

Моя рекомендация состоит в том, чтобы удалить любой файл, Вы вставляете местоположение. Специальный файл сокета создается сервером.

18
ответ дан 28 November 2019 в 20:21

Сокет является специальным псевдофайлом, используемым для передачи данных путем чтения и записи, не хранения данных.

Файл сокета создается, когда сервис запущен и удален, когда сервис завершается. Местоположение файла определяется в /etc/my.cnf как так:

[mysqld]
socket=/var/run/mysql/mysql.sock
14
ответ дан 28 November 2019 в 20:21

I had the same problem with the missing mysqld.sock. I went to the directory that contained mysql, namely /usr/bin in my case. Then I issued the command

mysql mysql --host=localhost --password=whatever --port=3306

The double mysql is not a typo but rather mysql is a database that will always be there in a new MySQL installation. I do not know if --host, --password or --port are needed but since it worked for me using these parameters I am including them. Once MySQL came up I went into the user table as set the password for root. Once MySQL came up the missing socket file was created. I hope this helps someone since I struggled for days.

2
ответ дан 28 November 2019 в 20:21

Когда вы укажете host = localhost , клиент mysql попытается войти на сервер mysql, используя именованный канал unix, для которого требуется файл .sock .

Это можно обойти, указав host = 127.0.0.1. Это заставит клиент mysql использовать TCP для подключения к серверу.

Взято из документации MySQL :

mysql --host=127.0.0.1 --port=3306 --user=your_uname --password=your_pass
20
ответ дан 28 November 2019 в 20:21

В моем случае при запуске mysqld_safe создается новый файл mysqld.sock .

$ cd /etc/init.d/
$ mysqld_safe

Вы, вероятно, не получите ответ, но если вы перезапустите сеанс, где-то будет файл mysqld.sock. Найдите его с помощью

$ sudo find / -type s | grep mysqld.sock
8
ответ дан 28 November 2019 в 20:21

Если вы используете nginx php-fastcgi и получили ошибку 502 Bad Gateway . чем смотреть на конфигурацию вашего виртуального хоста в конфигурационном файле nginx. Вы должны установить или исправить параметр fastcgi_pass. fastcgi_pass - это переменная, которая устанавливает соединение сокета между nginx и php CGI.

Другая проблема в том, что двоичный стартовый скрипт мог бы пропустил следующие записи(важные), открытые с: nano /usr/bin/php-fastcgi

SOCKET=/var/run/php-fastcgi/php-fastcgi.socket
PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid

Полное содержание моего стартового сценария /usr/bin/php-fastcgi:

#!/bin/bash

FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
SOCKET=/var/run/php-fastcgi/php-fastcgi.socket
PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid
CHILDREN=6
PHP5=/usr/bin/php5-cgi

/usr/bin/spawn-fcgi -s $SOCKET -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5
1
ответ дан 28 November 2019 в 20:21

В моем случае мне пришлось переустановить mysql с помощью: apt install mysql-server-5.7 (пожалуйста, проверьте, прежде чем выполнять текущую версию sql-server), чтобы вернуться mysqld.sock.

0
ответ дан 15 April 2020 в 09:59

Теги

Похожие вопросы