Не удается найти mysql.носок



мне просто пришлось переустановить mysql, и у меня возникли проблемы с его запуском. Он не может найти сокет (mysql.носок.) Проблема в том, что я тоже не могу. в моем терминале Mac OS X 10.4 я печатаю:locate mysql.sock, и я вернусь /private/tmp/mysql.sock. Имеет смысл, что файл сокета существует в этом месте, но на самом деле это не так.




  1. Как я могу найти файл сокета?


  2. Если locate возвращает ложное местоположение, он должен иметь какую-то память и наверное, индексами. Как я могу обновить этот индекс?


651   14  

14 ответов:

чтобы ответить на первую часть вашего вопроса:

run

% mysqladmin variables

и проверьте переменную' socket'

проблема

mysql_config --socket

обновление

mysql_config может сказать нам, где находится файл mysql.носок должен быть, но в моем случае файл не существует. Итак, я удалил.cnf:

sudo rm -rf /etc/my.cnf

а затем перезапустил mysql:

brew services restart mysql

файл был создан и mysql теперь работает хорошо.

файл сокета должен быть создан автоматически при запуске демона MySQL.

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

чтобы узнать, где должен быть файл, используйте:

% mysqld --verbose --help | grep ^socket

Это нашел его для меня:

netstat -ln | grep mysql

Mac OSX

моя проблема была также mysql.носок-файл.

В процессе установки drupal мне пришлось сказать, какую базу данных я хочу использовать но моя база данных не обнаружено

mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock

система ищет mysql.носок, но он находится в неправильном каталоге

все, что вам нужно сделать, это связать его ;)

мне потребовалось много времени, чтобы google всю важную информацию, но мне потребовалось даже несколько часов, чтобы узнать , как адаптироваться, но теперь я могу представить результат : D

PS: Если вы хотите быть именно вы должны связать ваш /tmp/mysql.sock-file (если он находится в вашей системе там тоже) в каталог, заданный php.ini (или php.по умолчанию.Ини) где pdo_mysql.default_socket= ...

Я получил точный путь, используя:

netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'

поскольку это возвращает только путь и не требует ввода, вы можете потенциально использовать его в сценарии оболочки.

MySQL должен быть в настоящее время работает на вашем компьютере, чтобы это работало. Работает на MariaDB в тоже.

исходные вопросы, похоже, исходят из путаницы о a) где находится файл, и b) где его ищут (и почему мы не можем найти его там, когда мы делаем locate или grep). Я думаю, что точка зрения Альнитака заключалась в том, что вы хотите найти, где она была связана, но grep не покажет вам ссылку, верно? Файл не живет там, так как это ссылка, это просто указатель. Вам все равно нужно знать, куда поместить ссылку.

мой файл носка определенно находится в /tmp и ошибка I я получаю ищет его в /var / lib/ (не только /var) я связался с /var и /var/lib теперь, и я все еще получаю ошибку "не удается подключиться к локальному серверу MySQL через сокет 'var/lib/mysql.и Sock' (2)".

обратите внимание на (2) после ошибки.... Я нашел в другом потоке, что это означает, что сокет действительно может быть использован, но что - то не так с самим сокетом - поэтому полностью выключите машину, чтобы сокет закрылся. Затем перезагрузить компьютер исправить это. Я попробовал это, но это не сработало для меня (теперь я спрашиваю, если я перезапустил слишком быстро? правда?) Может быть, это будет решение для кого-то другого.

чтобы обновить базу данных locate, я запустил

/usr/libexec/locate.updatedb
$ mysqladmin variables | grep sock

попробуйте это вместо этого, это выведет требуемый результат, избавившись от несвязанной информации.

(Q1) как я могу найти файл сокета?

по умолчанию файл сокета находится в папке /tmp / mysql.носок, чтобы найти файл сокета для вашей системы используйте это.

mysqladmin variables | grep socket

если вы только что установили MySql mysql.носок файл не будет создан до тех пор, пока сервер запущен. Используйте эту команду, чтобы запустить его.

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

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

mysqladmin --user root --password variables | grep socket

(Q2) как я могу обновить locate index

обновите базу данных locate с помощью этой команды.

sudo /usr/libexec/locate.updatedb

Я получаю ту же ошибку на Mac OS X 10.11.6:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

после многих мучительных и копающихся советов здесь и в связанных вопросах, ни один из которых, казалось, не исправил проблему, я вернулся и удалил установленные папки, и просто сделал brew install mysql.

все еще получаю ту же ошибку с большинством команд, но это работает:

/usr/local/bin/mysqld

и возвращает:

/ usr / local / bin / mysqld: готово подключение.

версия: '5.7.12' сокет: '/ tmp / mysql.порт носка: 3306 Homebrew

к сожалению, никто из вышеперечисленных не работал в моем случае. Но в конце концов я нашел решение.

чтобы найти, где находится mysql.sock file, просто откройте XAMPP manager, выберите MySQL и нажмите кнопку Настроить справа. На панели конфигурации нажмите кнопку Открыть файл Conf, и просто искать mysql.носок, нажав сочетание клавиш CMD+F.

в моем случае, владелец mysql.носок был изменен, и мне пришлось изменить его обратно в root admin с помощью: chmod root:admin mysql.носок

после этого база данных была доступна.

Я не мог найти MySQL socket вообще, поэтому переустановил mysql server (все таблицы и настройки phpmyadmin были сохранены). Вот команды:

1) установить

sudo apt-get install mysql-server

2) следуйте инструкциям по настройке терминала

sudo mysql_secure_installation

3) проверьте статус: (должен вернуть " Active: active (running)")

статус systemctl mysql.сервис

Я не могу помочь с вопросом №1, но обновить locate'файл базы данных, выполните команду:

updatedb

Comments

    Ничего не найдено.