У меня большая проблема при попытке подключения к MySQL. Когда я бегу:
/usr/local/mysql/bin/mysql start
У меня есть следующая ошибка:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
У меня есть mysql.sock
по /var/mysql
каталогу.
У /etc/my.cnf
меня есть:
[client]
port=3306
socket=/var/mysql/mysql.sock
[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
и у /etc/php.ini
меня есть:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock
Я перезапустил Apache, используя sudo /opt/local/apache2/bin/apachectl restart
Но у меня все еще есть ошибка.
В противном случае, я не знаю, если это актуально, но когда mysql_config --sockets
я получаю
--socket [/tmp/mysql.sock]
/var/log/mysql
или где-то там), что указывает, почему он не работает? Вы получаете ошибку при попытке запустить?service mysqld start
если вы только что установили. hthsudo service mysql start
спас меняОтветы:
Если ваш файл my.cnf (обычно в папке / etc / mysql / ) правильно настроен с
Вы можете проверить, работает ли mysql с помощью следующей команды:
попробуйте изменить свое разрешение на папку MySQL. Если вы работаете локально, вы можете попробовать:
это решило это для меня
источник
mysqld
обслуживание.Вы уверены, что вы установили MySQL, а также MySQL сервер ..
Например, чтобы установить сервер mySql, я буду использовать yum или apt для установки инструмента командной строки mysql и сервера:
Включите службу MySQL:
Запустите сервер MySQL:
Затем установите пароль root для MySQL:
Я надеюсь, что это помогает.
источник
brew install mysql
sudo apt-get install mysql-server
тогда жизнь была хорошаCan't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
от клиента? Это клиент пытается и не может подключиться, верно? (Я думаю, что оригинальный вопрос нуждается в редактировании, чтобы уточнить это).Быстрый обходной путь, который мне помог: попробуйте использовать локальный IP-адрес (127.0.0.1) вместо «localhost» в mysql_connect (). Это «заставляет» php подключаться через TCP / IP вместо сокета unix.
источник
localhost
и не получает127.0.0.1
до того, как пытается подключиться?Я получил следующую ошибку
Пробовал несколько способов и, наконец, решил это следующим образом
модифицированный
в
и перезапустил
это сработало
источник
localhost
исправить это.Убедитесь, что вы используете mysqld:
/etc/init.d/mysql start
источник
sudo service mysql start|restart
для Ubuntu.Чтобы предотвратить возникновение проблемы, вы должны выполнить постепенное отключение сервера из командной строки, а не выключать его.
Это остановит работающие службы перед выключением машины.
Основанный на Centos, дополнительный метод для его восстановления снова, когда вы сталкиваетесь с этой проблемой, состоит в том, чтобы переместить mysql.sock:
Перезапуск службы создает новую запись с именем mqsql.sock
источник
Я получил эту ошибку, когда установил задание cron для своего файла. Я изменил права доступа к файлу на 777, но он все еще не работал для меня. Наконец я получил решение. Может быть, это будет полезно для других.
Попробуйте с этой командой:
Помните, что -h означает хост , -P означает порт, а -p означает пароль.
источник
-p
не означает порт , это означает пароль , вы его перепутали-P
mysql -h 127.0.0.1 -u root -p
Как видно из множества ответов здесь, существует много проблем, которые могут привести к появлению этого сообщения об ошибке при запуске службы MySQL. Дело в том, что MySQL в целом скажет вам, что именно не так, если вы просто загляните в соответствующий файл журнала.
Например, в Ubuntu вы должны проверить
/var/log/syslog
. Поскольку в этот файл также может входить множество других вещей, вы, вероятно, захотите использовать егоgrep
для просмотра сообщений mysql иtail
только для самых последних. Все вместе, это может выглядеть так:grep mysql /var/log/syslog | tail -50
Не слепо вносите изменения в свою конфигурацию, потому что кто-то другой сказал: «Это сработало для моей системы». Выясните, что на самом деле не так с вашей системой, и вы получите лучший результат гораздо быстрее.
источник
.cnf
. Что объясняет его. Теперь я могу перестать пробовать случайные вещи и заняться реальной проблемой. Спасибо.Другой обходной путь - отредактировать /etc/my.cnf и включить хост в раздел [client].
А затем перезапустить службу MySQL.
Этот обходной путь был протестирован в: Версия сервера: 5.5.25a-log Исходный дистрибутив
источник
У меня была та же самая проблема, и это было вызвано обновлением драйверов mysql, когда сервер mysql работал. Я исправил это, просто перезапустив mysql и apache2:
источник
mysql
не работает. Я побежалsudo service mysql start
после запуска,sudo service mysql status
чтобы убедиться, что он не работает.В моем случае я использовал Centos 5.5. Я обнаружил, что проблема была в том, что служба mysql была остановлена каким-то образом. Поэтому я запустил службу mysql с помощью команды:
Так что .. глупая ошибка.
источник
Если все работало нормально, и вы только начали видеть эту ошибку, прежде чем делать что-то еще, убедитесь, что у вас нет свободного места на диске:
Если том, на котором создается mysql.sock , используется на 100%, MySql не сможет его создать, и это будет причиной этой ошибки. Все, что вам нужно сделать, это удалить то, что не нужно, например, старые файлы журнала.
источник
попробуйте с -h (хост) и -P (порт):
mysql -h 127.0.0.1 -P 3306 -u root -p
источник
Это должно послужить вам просто отлично. Возможно, вы изменили некоторые команды, которые влияли на конфигурацию mysql.
источник
systemctl start mariadb.service
в Fedora 22 или RedHat 7. После этого можно установить пароль root.Есть много решений этой проблемы, но в моей ситуации мне просто нужно было исправить ДАТУ на машине / сервере ( Ubuntu 16.04 Server ).
я) Проверьте дату вашего сервера и исправьте ее.
II) Выполнить
sudo /etc/init.d/mysql restart
Это должно начать.
источник
Я получал сообщение об ошибке, потому что я запускал MAMP, а мой файл .sock находился в другом месте. Я просто добавил символическую ссылку, где приложение считало, что это должно быть, которая указывает на то, где она на самом деле была, и она работала как шарм.
источник
Я также обнаружил, что это проблема с разрешениями. Я сравнил файлы MySQL с работающей установкой (обе на Debian 6 squeeze) и мне пришлось внести следующие изменения в владельца (где
mydatabase
есть какая-либо база данных).Владение
mysql:mysql
:Владение
mysql:root
:Владение
mysql:adm
:источник
Для меня - это был просто случай, когда MySQL долго загружался. У меня есть более 100 000 таблиц в одной из моих баз данных, и она в конце концов запустилась, но, очевидно, в этом случае это займет много времени.
источник
Если вы используете микро версию AWS (Amazon Web Services), то это проблема памяти. Когда я побежал
из терминала было бы сказать
Поэтому я попробовал следующее, и это просто не получилось.
После долгих поисков я обнаружил, что вам нужно создать файл подкачки для MySQL, чтобы иметь достаточно памяти. Инструкции перечислены: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html .
Затем я смог перезапустить mysqld.
источник
вы всегда можете запустить сервер mysql, указав расположение файла mysql.sock с помощью
--socket
опцииЭто будет работать, даже если местоположение файла сокета указано в другом месте в файле my.cnf.
источник
Для тех, чье решение не работает, попробуйте:
проверить , если my.cnf присутствует
и убедитесь, что у вас есть только один bind-адрес:
bind-address = 127.0.0.1
Если нет, то это может быть проблемой, просто выйдите из nano и сохраните файл.
а также
service mysql start
обратите внимание, что если у вас нет nano (это текстовый редактор), просто установите его
apt-get install nano
и просто нажмите Ctrl + X для выхода, не забудьте сказать Y, чтобы сохранить и использовать тот же файл)источник
У меня тоже была эта проблема при попытке запустить сервер, поэтому многие ответы здесь, в которых просто говорится, чтобы запустить сервер, не сработали. Первое, что вы можете сделать, это выполнить следующее, чтобы увидеть, есть ли какие-либо ошибки конфигурации:
У меня была одна ошибка, которая обнаружилась:
Простое
grep -HR "innodb-online-alter-log-max-size" /etc/mysql/
показало мне, какой именно файл содержит оскорбительную строку, поэтому я удалил эту строку из файла.Затем, проверяя мой
/var/log/mysql/error.log
файл, я имел:Исходя из этого вопроса, принятое решение не будет работать, потому что я даже не смог запустить сервер, поэтому я следовал тому, что было сказано в некоторых комментариях, и удалил мой
/var/lib/mysql/ib_logfile0
и/var/lib/mysql/ib_logfile1
файлы.Это позволило запустить сервер, и я смог подключиться и выполнить запросы, однако, проверяя мой файл журнала ошибок, он быстро заполнялся несколькими десятками тысяч строк, например так:
Основываясь на предложении здесь , чтобы исправить это, я сделал mysqldump и восстановил все базы данных (см. Ссылку для нескольких других решений).
Похоже, что сейчас все работает так, как ожидалось.
источник
/var/log/mysql/error.log
помогла в моем случае. Это было[ERROR] Can't init tc log
быстро исправлено с помощью следующего ответа: dba.stackexchange.com/a/185006/163583Добавление
к списку праматоров в связи с чем у меня работали.
источник
Это было достаточно хорошо для меня
источник
Я столкнулся с этим вопросом сегодня. Ни один из этих ответов не дал исправления. Мне нужно было выполнить следующие команды (находятся здесь https://stackoverflow.com/a/20141146/633107 ) для запуска моей службы mysql:
На это частично указывали следующие ошибки в /var/log/mysql/error.log:
Я также видел ошибку переполнения диска, но только при выполнении команд без sudo. Если проверка разрешений не удалась, она сообщает о переполнении диска (даже если ваш раздел даже близко не заполнен).
источник
CentOS 7, 64 бит. Свежая установка.
В моем случае ошибка была из-за того, что у меня не был установлен правильный сервер MySQL и клиент MySQL.
Используя
yum
, я удалилmariadb
и MySQL-сообщество редакции. Я загрузил rpm для клиента и сервера с официального сайта MySQL и установил сервер и клиент.При установке сервера мне было показано, что пароль к учетной записи root для MySQL хранится в файле, который я могу просмотреть
sudo cat /root/.mysql_secret
.Поэтому после установки клиента и сервера я проверил, работает ли MySQL (я думаю, что перед этим перезагрузился),
sudo service mysql status
и получил результат.Я вошел в MySQL с помощью пароля из .mysql_secret файла:
mysql -uroot -pdxM01Xfg3DXEPabpf
. Обратите внимание, чтоdxM01Xfg3DXEPabpf
это пароль, указанный в файле .mysql_secret.и затем набрал, введите следующую команду в приглашении mysql, чтобы изменить пароль root:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somePassword');
С этого момента все работало нормально.
источник
Работал для меня, я использую Centos
источник
Это прямо не ответит на ваш вопрос, но подмножество, а именно использование PythonAnywhere. Я продолжал наталкиваться на этот вопрос, когда искал исправление, поэтому добавляю его сюда в надежде, что оно поможет другим в моей ситуации.
PythonAnywhere решил изменить имена хостов соединения с базой данных, чтобы повысить эффективность и надежность, как подробно описано здесь :
Следовательно, вам нужно обновить имя вашего хоста до значения, выделенного выше.
источник
У меня только что была эта проблема. после дня окончательной проверки я получил ответ, что файл mysql.sock создается при запуске MariaDB и удаляется при выключении MariaDB. Это не будет существовать, если MariaDB не работает. может быть, вы не установили MariaDB. ВЫ МОЖЕТЕ СЛЕДОВАТЬ ЗА РУКОВОДСТВОМ НИЖЕ: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST
источник
У меня была эта ошибка сокета, и это в основном сводилось к тому, что MySQL не работал. Если вы запускаете новую установку, убедитесь, что вы установили 1) системный пакет и 2) установщик панели (mysql.prefPane). Установщик панели позволит вам перейти в «Системные настройки» и открыть MySQL, а затем запустить экземпляр.
Обратите внимание, что при новой установке мне нужно было перезагрузить компьютер, чтобы изменения вступили в силу. После перезагрузки я запустил новый экземпляр и смог без проблем открыть соединение с localhost.
Также следует отметить, что у меня, по-видимому, были установлены предыдущие версии MySQL, но я удалил панель, что облегчает запуск экземпляра MySQL для пользователей Mac.
Хорошая ссылка для этого процесса переустановки: http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/
источник