Я установил LAMP на Ubuntu 12.04 LTS (Точный Pangolin), а затем установил пароль root на phpMyAdmin. Я забыл пароль, и теперь я не могу войти в систему. Когда я пытаюсь сменить пароль через терминал, я получаю:
ERROR 2002 (HY000): невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
Как я могу это исправить? Я не могу открыть LAMP, удалить его или переустановить.
У меня была эта проблема и я решил ее установить, установив mysql-server
, поэтому убедитесь, что вы установили mysql-server
, а не mysql-client
или что-то еще.
Эта ошибка означает, что файл /var/run/mysqld/mysqld.sock
не существует, если вы не установили mysql-server
, тогда файл не существовал. Но если mysql-server
уже установлен и запущен, вам необходимо проверить файлы конфигурации.
Конфигурационные файлы:
/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
В /etc/my.cnf
конфигурационный файл сокета может быть /tmp/mysql.sock
, а в /etc/mysql/my.cnf
конфигурационный файл сокета может быть /var/run/mysqld/mysqld.sock
. Итак, удалите или переименуйте /etc/mysql/my.cnf
, пусть mysql использует /etc/my.cnf
, тогда проблема может быть решена.
sudo apt-get install mysql-server
для установки mysql в ubuntu
Попробуйте следующее:
mysql -h 127.0.0.1 -P 3306 -u root -p <database>
Также (чтобы убедиться, что он работает):
telnet 127.0.0.1 3306
Вероятно, это просто некорректная конфигурация в файле my.cnf
в /etc/somewhere
(в зависимости от дистрибутива Linux).
Я вижу все эти ответы, но none предлагает возможность reset пароля и не принимать ответ. Фактический вопрос заключается в том, что он забыл свой пароль, поэтому ему нужно reset, не видеть, работает ли он или нет (установлен или нет), поскольку подразумевается большинство этих ответов.
Выполните следующие действия (может быть полезно, если вы действительно забыли свой пароль, и вы можете попробовать его в любое время, даже если вы сейчас не в ситуации):
Остановка mysql
sudo /etc/init.d/mysql stop
Или для других версий распространения:
sudo /etc/init.d/mysqld stop
Запустите MySQL в безопасном режиме
sudo mysqld_safe --skip-grant-tables &
Войдите в MySQL с помощью root
mysql -uroot
Выберите базу данных MySQL, чтобы использовать
use mysql;
reset пароль
update user set password=PASSWORD("mynewpassword") where User='root';
Снимите привилегии
flush privileges;
Перезагрузите сервер
quit
Остановить и снова запустить сервер
Ubuntu и Debian:
sudo /etc/init.d/mysql stop
...
sudo /etc/init.d/mysql start
В CentOS, Fedora и RHEL:
sudo /etc/init.d/mysqld stop
...
sudo /etc/init.d/mysqld start
Войти с новым паролем
mysql -u root -p
Введите новый пароль и снова наслаждайтесь сервером, как ничего не произошло
Это было взято из reset пароля пользователя MySQL.
Обновление, взятое из комментария @Daniel ниже:
В MySQL 5.7 поле пароля в поле таблицы mysql.user было удалено, и теперь имя поля является "authentication_string", поэтому шаг 5 должен быть:
update user set authentication_string=password('mynewpassword') where user='root';
repair table user use_frm
мне решить эту проблему. - stackoverflow.com/questions/4297592/…
update user set authentication_string=password('mynewpassword') where user='root';
Я пробовал следующие шаги:
super user
или используйте sudo
/etc/mysql/my.cnf
с помощью geditbind-address
и измените его значение на IP-адрес хост-компьютера сервера базы данных. Для меня это было localhost
или 127.0.0.1
sudo service mysql start
И это сработало для меня.
Я исправил эту проблему, выполнив следующую команду:
mysql.server start
И если вы используете mac и использовали brew для установки mysql, просто используйте:
brew services start mysql
mysql.server start
: команда не найдена (Ubuntu)
У меня была аналогичная проблема. mysql не запускался:
sudo service mysql start
start: Job failed to start
Если я отключил apparmor:
sudo aa-complain /etc/apparmor.d/*
проблема исчезла. Проблема заключалась в том, что mysqld пытался получить доступ к /run/mysqld/mysqld.sock, но профиль apparmor дал разрешение на /var/run/mysqld/mysqld.sock(/var/run имеет символическую привязку к /run, так что это на самом деле тоже самое). Не уверен, почему mysqld не использует путь var, так как он установлен во всех файлах конфигурации, но вы можете исправить проблему, добавив следующее в /etc/apparmor.d/usr.sbin.mysqld
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,
Я решил это, убив процесс mysql
:
ps -ef | grep mysql
kill [the id]
И затем я снова запустил сервер:
sudo /etc/init.d/mysql restart
Но start
работает также:
sudo /etc/init.d/mysql start
Затем я вошел в систему как admin
, и я закончил.
В моем случае это было то, что диск был заполнен, а mysqld больше не мог запускаться.
Попробуйте перезапустить службу mysql.
служба mysql restart
или
служба mysql stop
служба mysql start
Если он не распознает команду "stop", то это определенно дисковое пространство. Вы должны сделать некоторое пространство в разделе mysql, выделенном или сделать диск более крупным.
Проверьте дисковое пространство с помощью
df -h
Как-то процесс MySQL-сервера не создавал сокет, или клиент ищет сокет в неположенном месте.
Мое первое предложение - проверить, работает ли сервер MySQL. Возможно, второе предложение - это сервер MySQL, работающий на другом хосте? Если это так, добавьте флаг -h <hostname>
к вашему клиенту MySQL в терминале.
Если MySQL действительно запущен и работает локально, проверьте ваш файл my.cnf
. Должна быть строка типа
socket = /var/run/mysqld/mysqld.sock
Посмотрите, соответствует ли это местоположению сокета, указанному в вашем сообщении.
Из опыта, я бы сказал, наиболее вероятным сценарием является то, что ваш сервер MySQL либо вообще не работает, либо не работает на том же хосте, где вы запускаете своего клиента MySQL с терминала.
Я просто испытал ту же проблему после того, как мне пришлось перезапустить мой производственный сервер. Я запускаю Debian 8.1 (Jessie) на капли DigitalOcean.
Это то, что я сделал для решения моей проблемы:
Проверьте, существует ли файл /var/run/mysqld/mysqld.sock
. Если это не так, создайте вручную, введя touch /var/run/mysqld/mysqld.sock
(что я и должен был сделать).
Таким образом, процесс MySQL может использовать этот файл. Измените право собственности на указанный файл, введя chown mysql /var/run/mysqld/mysqld.sock
.
После выполнения "2" перезапустите службу MySQL, введя service mysql restart
или /etc/init.d/mysql restart
.
После выполнения вышеуказанных шагов моя проблема была решена. У меня редко есть эта проблема, и, вероятно, есть лучший способ, поэтому обязательно создавайте конструктивную обратную связь, если это необходимо:).
Возможно, ваш mysql-сервер не запущен. Убедитесь, что он работает, набрав mysql.server start
в терминал.
Вот что сработало для меня:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
Это создает ссылку.
Если вы используете Amazon EC2, и у вас возникла эта проблема на экземпляре, вам нужно только сделать:
sudo yum install mysql-server
sudo service mysqld restart
Amazon EC2 не имеет установленного сервера (установлен только клиент), поэтому в случае необходимости вам нужно установить его на свой экземпляр и после этого попробуйте
mysql -u root -p
чтобы проверить, работает ли это.
Вместо использования localhost:
mysql -u myuser -pmypassword -h localhost mydatabase
Использовать 127.0.0.1
mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase
(также обратите внимание, что между -p и mypassword нет пробела)
Наслаждайтесь:)
127.0.0.1
работает, а localhost
нет ?!
Я думаю, всякий раз, когда вы получаете ошибку
ERROR 2002 (HY000): невозможно подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock'
Сначала я рекомендую проверить, запущен ли ваш демон mysql
. В большинстве случаев он не будет работать по умолчанию. Вы можете проверить его на /etc/init.d/mysqld status
.
Если он не запущен, сначала запустите его:
.../etc/init.d/mysqld start.
Я уверен, что это будет 110% работать.
Убедитесь, что у вас есть резервные копии важных баз данных, а затем попробуйте удалить MySQL.
apt-get remove --purge mysql\*
Затем установите его снова:
apt-get install mysql-server mysql-client
Это сработало для меня, и данные были сохранены.
Если PHP MySQL показывает ошибки, вам может потребоваться переустановить PHP MySQL:
apt-get install php5-fpm php5-mysql
У меня тоже есть эта проблема, но я просто сделал:
sudo service mysql restart
Это сработало для меня.
Проверьте параметр "bind-adress"
в my.cnf.
Повторите попытку с помощью команды:
mysql -h 127.0.0.1 -P 3306 -u root -p
-h для хоста 127.0.0.1
, то есть localhost
-P (обратите внимание на -P как верхний регистр) для порта 3306
, то есть порт по умолчанию для MySQL
Если у вас установлен XAMPP на вашем компьютере Linux, попробуйте скопировать файл my.cnf
с /opt/lampp/etc/my.cnf
на /etc/my.cnf
.
Затем запустите mysql -u root
снова... Теперь у вас должен быть правильный сокет и быть в состоянии запустить клиент MySQL.
В моем случае он работал, выполняя некоторые R & D:
Я могу подключиться к MySQL, используя
root-debian#mysql -h 127.0.0.1 -u root -p
Но он не работает с mysql -u root -p
.
Я не нашел bind-address
в my.cnf. Таким образом, я outcommented параметр socket=/var/lib/mysql/mysqld.sock
в my.cnf
, который вызывал у меня проблему с логином.
После перезапуска службы все прошло нормально:
root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)
В моем случае порт 3306 по умолчанию использовался каким-то другим процессом, и поэтому он не запускался. После того как я остановил другую службу и сделал sudo service mysql start
, она работала нормально. Кстати, вы можете использовать что-то вроде sudo lsof -Pn -iTCP:3306
, чтобы узнать, кто может использовать порт.
Я нашел решение
Перед стрельбой выполните команду: mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Затем он попросит пароль root, и вы можете просто нажать Ввести и установить новый пароль root.
На сервере Debian Jessie моим рабочим решением было просто сделать
service mysql restart
service mysql reload
как пользователь root
В моем случае, похоже, что я действительно не смог убить процесс mysql, когда я запускал
sudo service mysql stop
ps -ef | grep mysql
Процесс mysql всегда был там, похоже, что он блокировал файл сокета, и новый процесс mysql не смог создать его сам.
поэтому это помогло
cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Теперь я могу войти в базу данных, используя
mysql -u root
Затем обновить пароль root:
UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;
PS: мне не удалось обновить root passwod, похоже, проблема с плагином "auth_socket", поэтому мне пришлось создать нового пользователя с полными привилегиями
insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y", `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y", `Repl_client_priv` = "Y", `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y", `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";
Это создает пользователя "супер" без пароля, а затем вы можете подключиться к mysql -u super
use mysql;
<br> и теперь вы можете использовать <br> UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
У меня была такая же проблема. Иногда это происходит, если ваш сервис MySQL отключен.
Итак, вы должны запустить его:
sudo service mysql start
Теперь он работает...
Я выполнил учебник Установка MariaDB 10.1.16 на Mac OS X с помощью Homebrew, чтобы решить эту проблему.
Но не забудьте убить или удалить старую установку MariaDB.
Откройте терминал и введите:
sudo apt-get purge mysql-client-core-5.6
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-client-core-5.5
sudo apt-get install mysql-server
Оба базового клиента базы данных MySQL и пакеты MySQL Server будут той же версии 5.5. MySQL Client 5.5 и MySQL Server 5.5 являются текущими "лучшими" версиями этих пакетов в Ubuntu 14.04, как это определено сопровождающими пакетами.
Если вы предпочитаете устанавливать MySQL Client 5.6 и MySQL Server 5.6, вы также можете найти пакеты mysql-client-core-5.6 и mysql-server-5.6 в Ubuntu Software Center. Важно то, что номера версий клиента и сервера совпадают в любом случае.
Это сработало для меня.
У меня была та же проблема. После долгих поисков я не нашел ответа.
Наконец, я проверил каталог /tmp
, и его разрешения были 755. Я изменил его разрешения на 777, а mysqld начал без проблем.
Если ваша установка была последней, вы должны подтвердить, установлена ли ваша установка SERVER... как mysql-server-5.5.. Возможно, вы установили только "mysql".. это только клиент, а не сервер.
По опыту я говорю, что вам нужно проверить, запускается ли сервер первым, а затем попробовать настроить MySQL. Последнее решение - переустановить MySQL.
Я решил эту проблему с перезапуском mysql
/etc/init.d/mysql stop
а также
/etc/init.d/mysql start
это.
То же самое на Ubuntu 14.04 (Trusty Tahr).
Если вы установили XAMPP, установка mysql-сервера не является решением, потому что вы получите доступ к другому MySQL!
Вы должны использовать правый сокет для доступа. Обычно это:
/opt/lampp/var/mysql/mysql.sock
Вместо этого измените его на:
/var/run/mysqld/mysqld.sock
Проверьте, есть ли у вас правильные права:
sudo chmod 755 /var/lib/mysql/mysql
У меня были те же проблемы, и это сработало для меня. После этого я смог запустить MySQL.
Для меня обновление решило проблему:
В Ubuntu:
sudo apt-get update
sudo apt-get upgrade
В CentOS:
sudo yum update
Просто скопируйте файл /opt/lampp/etc/my.cnf
в /etc/mysql/my.cnf
.
И в типе терминала:
mysql -u root
Вы получите приглашение mysql>
:
mysql> Update mysql.user set Password=PASSWORD('your_password') where user='root';
mysql> FLUSH PRIVILEGES;
В моем случае проблема была повреждена страницей во всех моих базах данных (проверьте журнал ошибок mysql).
Я решил это с помощью Forcing InnoDB Recovery. Трюк редактирует /etc/mysql/my.cnf и добавляет
innodb_force_recovery = 4
чуть ниже
[mysqld]
И затем перезапустите mysql. После проверки правильности работы теперь удалите строку снова.
Вы можете сначала проверить, запущена ли служба, с помощью:
ps ax | grep mysql
Я получил этот ответ:
6104 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe
6431 pts/0 Sl 0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/m
Никакой ответ означает, что служба не запущена, так что:
service mysql start
sudo /etc/init.d/mysqld status
или sudo service mysqld status
Я не могу это объяснить, но в kubuntu 12.04.2 после
sudo apt-get autoremove linux-headers-3.2.0-37 linux-headers-3.2.0-37-generic
он начал работать
У вас нет разрешения на создание каталога /var/run/mysqld. Поэтому создайте и дайте разрешение следующим образом.
For CentOS Linux release 7.3
The mysql.sock file path is /var/lib/mysql/mysql.sock
Edit /etc/my.cnf file and put below entry
This will solve your problem.
[client]
user=root
password=Passw0rd
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
bind-address=0.0.0.0
После этого перезапустите службу
service mysql restart
Простое решение на моем сервере: после перехода на новый сервер Debian 7 с моими базами данных MySQL второй локальный IP-адрес, 127.0.1.1
отсутствовал в моем файл hosts. Добавив это, были устранены предупреждения:
echo -e "\n127.0.1.1 $(hostname)" >> /etc/hosts
Для меня это было:
Откройте /etc/mysql/my.cnf
или /etc/my.cnf
и найдите "bind-address". Это было 127.0.0.1
. Я преобразовал его в localhost, поэтому результат строки должен быть "bind-address = localhost".
В противном случае вы должны запустить сервер MySQL с IP-адресом, который существовал в директиве адрес-адрес, т.е. mysql -h 127.0.0.1
.
Этот ответ связан с обновлением до MySQL 5.6 на машинах с небольшим объемом оперативной памяти
У меня была такая же проблема при обновлении с MySQL 5.5 до 5.6 на моем Debian 8 (Jessie). MySQL не был запущен (статус показывался активным/выведенным), и просто сделать service mysql start
не удалось, потому что, как я нашел из файла журнала /var/logs/mysql/error.log
:
InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool
Недостаточно памяти: у меня было только 256 МБ ОЗУ.
В MySQL есть параметр, performance_schema
. По умолчанию он отключен в MySQL 5.5.
https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html
Но в MySQL 5.6 по умолчанию включено, и просто добавив следующую строку в файл /etc/mysql/my.cnf
и перезагрузив ее, она сработала.
performance_schema = off
Предупреждение: При отключении этого параметра могут возникнуть проблемы с производительностью, но я думаю, что в среде разработки это не будет проблемой.
Кроме того, вот статья, которая может быть полезной для настройки MySQL на использование минимальной памяти, Настройка MySQL для использования минимальной памяти.
Установите mysql-сервер:
sudo apt-get install mysql-server
enter password as root
Логин:
mysql -u root -p root
Здесь -u user name
и -p password
были заданы при установке сервера MySQL. Он будет работать так, как он работал у меня.
У меня была такая же проблема. Я нашел это.
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
Это связано с тем, что перед запуском клиента MySQL вы не запускаете демон mysqld
. Файл /var/lib/mysql/mysql.sock
будет автоматически создан при запуске первого экземпляра MySQL.
Чтобы исправить:
Сначала запустите демон MySQL, затем введите mysql
:
/etc/init.d/mysqld start
mysql
По умолчанию корневой пароль пуст для базы данных MySQL. Рекомендуется изменить пароль root MySQL на новый с точки зрения безопасности.
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;
После завершения проверки, зайдите в систему:
mysql -u root -p
Enter Password: <your new password>
Starting mysqld: [ OK ]
но все еще его, когда я запускаю mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Также проверьте my.conf
(/etc/mysql/my.cnf
) и посмотрите, установлен ли адрес привязки 127.0.0.1.
Если это не так, это может вызвать эту проблему.
Вы работаете локально, это означает, что ваш клиент работает на том же компьютере, что и ваш сервер.
Убедитесь, что ваш пользователь Unix действительно может получить/прочитать /var/run/mysqld/mysqld.sock
:
ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock
Если нет, обратитесь к своему системному администратору или администратору базы данных, чтобы обеспечить адекватный доступ для чтения/выполнения к этим каталогам или переместить файл сокета в другое место.
Теперь у меня была эта проблема и она была решена.
Хотя вы установили mysql-сервер, демон должен быть запущен, чтобы клиент мог подключиться к нему.
Сначала проверьте, запущен ли сервер mysql:
netstat -tap | grep mysql
Вы должны увидеть что-то вроде этого:
$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 6639/mysqld
Если у вас нет сервера, запустите демон с помощью следующей команды:
/etc/init.d/mysql restart
Это должно решить вашу проблему, если она установлена.
Чтобы предотвратить возникновение проблемы, вы должны выполнить изящное завершение работы сервера из командной строки, а не отключать сервер.
shutdown -h now
Это остановит запущенные службы перед отключением компьютера.
Основываясь на Centos, дополнительный метод для его восстановления снова при запуске этой проблемы заключается в перемещении mysql.sock:
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
service mysqld start
Перезапуск службы создает новую запись с именем mqsql.sock
Если вы используете Ubuntu, это может быть вопросом привилегий.
Проверьте права на свои каталоги. Недостаточно быть в корневой группе, также использовать chmod в каталогах, которые MySQL пишет (например, /var/run/mysqld/
для создания файла mysqld.pid
).
Это было полезно для меня.
Мое хранилище на сервере было переполнено, это мешало запуску Mysql. Понял идею отсюда. Увеличение HD и перезагрузка исправили проблему.
Я также столкнулся с той же проблемой, это произойдет, если ваш сервер MySQL не работает по умолчанию, он снова остановится через несколько секунд, поэтому вы снова запускаете ($ sudo service mysql start) команду, которую можете изменить, если знаете.
для этой команды использования
$ sudo service mysql start
(введите пароль пользователя, если требуется, потому что мы используем sudo), а затем запустите
$ sudo mysql -u root -p (введите пароль пользователя, если требуется)
теперь вы получили свою базу данных
В моем случае это было просто потому, что mysql был остановлен из-за отсутствующей папки /var/log/mysql
, определенной в /etc/mysql/my.cnf
. После его создания я мог бы запустить mysql, и он работал как обычно.
Попробуйте перезагрузить сервер с помощью
sudo /usr/local/mysql/support-files/mysql.server start
Если есть какая-либо ошибка, выполните следующие шаги
mysqld
Вы увидите следующий журнал. Обратите внимание на выделенную часть каталога MySQL здесь
mysqld: не удается изменить каталог '/usr/local/mysql-5.7.14-osx10.11-x86_64/data/' (Errcode: 13 - Permission denied) 2016-10-04T14: 09: 19.392581Z 0 [Warning] TIMESTAMP с неявным значением DEFAULT устарела. Пожалуйста, используйте --explicit_defaults_for_timestamp server (подробнее см. в документации). 2016-10-04T14: 09: 19.392847Z 0 [Предупреждение] Небезопасный Конфигурация для -secure-file-priv: Текущее значение не ограничивает расположение сгенерированных файлов. Попробуйте установить его на действительный, непустой дорожка. 2016-10-04T14: 09: 19.392921Z 0 [Примечание] mysqld (mysqld 5.7.14) начиная с процесса 1402... 2016-10-04T14: 09: 19.397569Z 0 [Предупреждение] Невозможно создать тестовый файл
/usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14: 09: 19.397597Z 0 [Warning] Невозможно создать тестовый файл /usr/local/mysql -5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14: 09: 19.397712Z 0 [ERROR] не удалось установить datadir для /usr/local/mysql -5.7.14-osx10.11-x86_64/data/
2016-10-04T14: 09: 19.397776Z 0 [ОШИБКА] Отмена
2016-10-04T14: 09: 19.397795Z 0 [Примечание] Binlog end
2016-10-04T14: 09: 19.397925Z 0 [Примечание] mysqld: завершение завершено
sudo chown -R _mysql:_mysql /usr/local/mysql-5.7.14-osx10.11-x86_64
Обратите внимание на имя папки MySQL из /usr/local с предыдущего шага, и в моем случае это mysql-5.7.14-osx10.11-x86_64 и вы должны обновить его на основе журнала, который вы получаете, чтобы предоставить доступ для чтения в каталог MySQL
sudo /usr/local/mysql/support-files/mysql.server start
Запуск MySQL
УСПЕХ!
Совет: всегда задавайте MySQL, в чем проблема. В моем случае less /var/log/mysql/error.log
и см. Это:
2015-07-28 12:01:48 23224 [ERROR] /usr/sbin/mysqld: unknown variable 'log_slow_queries=/var/log/mysql/mysql-slow.log'
2015-07-28 12:01:48 23224 [ERROR] Aborting
Жалуется, потому что я раскомментировал эту опцию в my.cnf
, но после комментирования этой опции она началась без каких-либо проблем.
Эта ошибка также может возникнуть, если вы попытаетесь изменить каталог, в котором хранится база данных, но введете неправильный каталог в файл конфигурации (например, опечатку во втором диске как D
вместо точного D_
), Вместо того, чтобы сообщать вам, что каталог typo не существует, он скажет вам, что вам не хватает доступа к нему (что приведет к попытке изменить разрешения для каталога typo, что он позволит вам сделать). Поэтому, если вы получите эту ошибку при изменении каталогов, дважды проверьте файл конфигурации и убедитесь, что у вас нет опечатки.
У меня тоже была эта проблема, и ни один из этих ответов не помог мне. Проблема была другой, но ошибка была описана OP.
Я проверяю журналы MySQL в /var/log/mysql
, и я видел это:
150309 5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable 'lower_case_tables_names=1'
Я открыл файл /etc/mysql/my.cnf
и вывел из строя строку #
. После этого мне удалось подключиться к базе данных.
Честно говоря, я не знаю, в чем проблема. Линейный сервер должен был перезапуститься из-за обслуживания, и эта ошибка возникла из ниоткуда.
В /etc/mysql/my.cnf
проверьте последнюю строку:
!includedir /etc/mysql/conf.d/
У меня было это на Ubuntu, и, как я понял, было более одного экземпляра mysqld.
Похоже, что предыдущий не был полностью остановлен, а новый уже начался. Запуск "/etc/init.d/mysql stop" не помог, он всегда возвращал "ОК", и сразу после этого автоматически запускался новый экземпляр:
$ sudo /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
$ pgrep mysql
28315
$ sudo /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
$ pgrep mysql
28570
$ sudo /etc/init.d/mysql stop
* Stopping MySQL database server mysqld [ OK ]
$ pgrep mysql
28763
..... etc ...
К счастью, следующая команда устранила проблему:
$ sudo service mysql stop
mysql stop/waiting
$ ps -ef | grep mysql
29841 26858 0 10:59 pts/8 00:00:00 grep --color=auto mysql <--- IT gone !
После этого мне снова удалось запустить mysql и увидеть, что mysql.sock был успешно создан.
sudo touch /var/lib/mysql/.force_upgrade
sudo rcmysql restart
работал у меня, когда у меня была эта проблема
Это может быть проблема с файлом конфигурации. У меня была аналогичная проблема, и я не мог найти решение в Интернете. Я заметил, что у меня было два файла my.cnf
, один в /etc/mysql
, а другой - в /etc
.
Выполните следующие шаги:
Проверьте my.cnf
файлы на вашем компьютере с помощью locate my.cnf
.
Если есть две записи, то есть /etc/my.cnf
и /etc/mysql/my.cnf
,
переименуйте /etc/mysql/my.cnf
в другое, например /etc/mysql/my.cnf.old
Попробуйте снова запустить MySQL.
Вы проверили, работает ли LAMPP?
sudo bash <path>/lampp start
Для меня путь
sudo bash /opt/lampp/lampp start
Модернизация MySQL исправила его для меня. На серверах на базе RHEL просто запустите:
sudo yum upgrade mysql-server
Вы должны подтвердить владельца группы для /var/run/mysqld
. Если это не mysql.mysql
, тогда выполните:
su root
chown mysql.mysql /var/run/mysqld
Я решил эту проблему, удалив эту строку из моего /etc/mysql/my.conf
в разделе mysqld
([mysqld]):
default-character-set=utf8
Перезагрузитесь, и все будет хорошо.
Я должен был сказать:
sudo /etc/init.d/mysqld start
Сделайте команду
перезагрузка sudo
работал у меня.