Я могу запустить MySQL нормально,
/usr/local/mysql/support-files/mysql.server start
Starting MySQL
SUCCESS!
Но после любого действия MySQL я получаю ошибку:
Не удалось найти файл PID сервера MySQL
/usr/local/mysql/support-files/mysql.server stop
ERROR! MySQL server PID file could not be found!
Где найти файл PID сервера на Mac с OSX 10.8? Мне интересно, проблема ли это в разрешении. Файл mysql.sock - это символическая ссылка, указывающая на файл в каталоге tmp /.
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Этот вопрос немного устарел, но я подумал, что опубликую, как я решил эту проблему, когда это случилось со мной на моем Mac (OS X El Capitan 10.11.4).
Проверьте статус, чтобы быть уверенным
mysql.server status
ОШИБКА! MySQL работает, но файл PID не найден
Найти все запущенные процессы mysql
ps aux | grep mysql
Он перечислит все процессы, использующие mysql (включая команду, которую вы только что выполнили)
Убейте все pid-файлы mysql
sudo kill <pid1> <pid2> <pid3> ...
Это должно убить все процессы mysql
Теперь попробуйте запустить mysql.
mysql.server start
Запуск MySQL. УСПЕХА!
Надеюсь, это кому-то поможет!
EDIT: альтернативное решение от @DanielTate
Это сработало для меня JasperSoft Wiki - удалить-mysql-mac-os-x. Мне пришлось удалить mysql, затем удалить ВСЕ файлы, затем переустановить и следовать инструкциям по установке home brew
РЕДАКТИРОВАТЬ 2: Альтернативное решение от @JanacMeena
В этой статье есть прекрасное описание их решения. опубликовать на Medium.
В вашем файле конфигурации mysql - my.cnf
, проверьте параметр pid-file
и посмотрите, куда он указывает. Если его там нет, установите его вручную на -
pid-file = /var/run/mysqld/mysqld.pid
Создать каталог /var/run/mysqld/
и дайте ему соответствующие разрешения -
mkdir /var/run/mysqld
touch /var/run/mysqld/mysqld.pid
chown -R mysql:mysql /var/run/mysqld
Основная проблема, вероятно, в том, что ваше имя хоста меняется, и если вы не укажете pid-файл в my.cnf, он будет использовать .pid в качестве файла. Если у меня дома есть MacBook, я увижу одно имя хоста, но когда он проснется в корпоративной сети, он увидит то же имя с «.local» в конце.