Вопрос или проблема
Сначала я сделал
debian@osboxes:~/Desktop$ mysql -u root -p
Команда 'mysql' не найдена, но может быть установлена с помощью:
sudo apt install mysql-client-core-8.0 # версия 8.0.18-0ubuntu0.19.10.1, или
sudo apt install mariadb-client-core-10.3 # версия 1:10.3.20-0ubuntu0.19.10.1
Затем я установил
debian@osboxes:~/Desktop$ sudo apt install mysql-client-core-8.0
Теперь я делаю
debian@osboxes:~/Desktop$ mysql -u root -p
Введите пароль:
ERROR 2002 (HY000): Невозможно подключиться к локальному MySQL серверу через сокет '/var/run/mysqld/mysqld.sock' (2)
Теперь я проверяю
debian@osboxes:~/Desktop$ sudo service mysql status
Несуществующая единица mysql.service.
Затем я делаю
debian@osboxes:~/Desktop$ ps aux | grep mysql
debian 4379 0.0 0.0 8896 916 pts/0 S+ 14:38 0:00 grep --color=auto mysql
Таким образом, кажется, что служба mysql работает. Но когда я пытаюсь войти сейчас
debian@osboxes:~/Desktop$ mysql -u root -p
Введите пароль:
ERROR 2002 (HY000): Невозможно подключиться к локальному MySQL серверу через сокет '/var/run/mysqld/mysqld.sock' (2)
debian@osboxes:~/Desktop$
Я также пробовал.
debian@osboxes:~/Desktop$ systemctl restart mysql
Не удалось перезапустить mysql.service: единица mysql.service не найдена.
debian@osboxes:~/Desktop$ sudo dpkg -l | grep -E 'mysql'
ii libmysqlclient21:amd64 8.0.18-0ubuntu0.19.10.1 amd64 Библиотека клиента MySQL
ii mysql-client-core-8.0 8.0.18-0ubuntu0.19.10.1 amd64 Основные бинарные файлы клиента MySQL
ii mysql-common 5.8+1.0.5ubuntu2 all Общие файлы базы данных MySQL, например /etc/mysql/my.cnf
debian@osboxes:~/Desktop$
На прошлой неделе
я задал вопрос mysql не запускается после перезагрузки, поэтому я знаю, что установил mysql на этом компьютере. Но все еще сталкиваюсь с проблемой, так что я попытался
debian@osboxes:~/Desktop$ sudo apt-get install mysql-server
E: Невозможно получить блокировку /var/lib/dpkg/lock-frontend. Она удерживается процессом 4531 (unattended-upgr) - открыть (11: Временный ресурс недоступен)
N: Учтите, что удаление файла блокировки не является решением и может сломать вашу систему.
E: Невозможно получить блокировку интерфейса dpkg (/var/lib/dpkg/lock-frontend), используется ли другой процесс?
Я также проверил
debian@osboxes:~/Desktop$ systemctl -a | grep -iE 'mysql'
Не было вывода.
Также я делал
debian@osboxes:~/Desktop$ sudo netstat -tap | grep mysql
sudo: netstat: команда не найдена
Затем я делаю
debian@osboxes:~/Desktop$ sudo apt-get install net-tools
debian@osboxes:~/Desktop$ sudo netstat -tap | grep mysql
Не было вывода.
Теперь, основываясь на комментариях ниже, я сделал
debian@osboxes:~/Desktop$ sudo rm /var/lib/dpkg/lock
debian@osboxes:~/Desktop$ sudo dpkg --configure -a
debian@osboxes:~/Desktop$ sudo systemctl restart mysql.service
Не удалось перезапустить mysql.service: единица mysql.service не найдена.
Теперь попробуйте
debian@osboxes:~/Desktop$ sudo rm /var/cache/apt/archives/lock
Теперь я перезагружаю
и затем
debian@osboxes:~/Desktop$ ps aux | grep mysql
debian 2403 0.0 0.0 8896 844 pts/0 S+ 15:10 0:00 grep --color=auto mysql
debian@osboxes:~/Desktop$ mysql -u root -p
Введите пароль:
ERROR 2002 (HY000): Невозможно подключиться к локальному MySQL серверу через сокет '/var/run/mysqld/mysqld.sock' (2)
Система запрашивает пароль root, который я пробовал на прошлой неделе. Я не могу понять, что мне нужно проверить.
Я не могу войти. Что мне теперь проверить?
Я на Ubuntu 19.10
В дополнение к клиенту mysql вам также необходимо установить сервер mysql.
Я добавил информацию из Ubuntu mysql
Установка
Чтобы установить MySQL, выполните следующую команду в терминале:
sudo apt install mysql-server
После завершения установки сервер MySQL должен быть запущен автоматически. Вы можете выполнить следующую команду в терминале, чтобы проверить, работает ли сервер MySQL:
sudo netstat -tap | grep mysql
Когда вы выполняете эту команду, вы должны увидеть следующую строку или что-то подобное:
tcp 0 0 localhost:mysql *:* LISTEN 2556/mysqld
Если сервер не работает корректно, вы можете ввести следующую команду, чтобы запустить его:
sudo systemctl restart mysql.service
Конфигурация
Вы можете редактировать файл /etc/mysql/my.cnf
, чтобы настроить основные параметры – файл журнала, номер порта и т. д. Например, чтобы настроить MySQL для прослушивания подключений от сетевых хостов, измените директиву bind-address на IP-адрес сервера:
bind-address = 192.168.0.5
Замените 192.168.0.5
на соответствующий адрес.
После внесения изменений в /etc/mysql/my.cnf
демон MySQL нужно будет перезапустить:
sudo systemctl restart mysql.service
Ответ или решение
Проблема, с которой вы столкнулись — «Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)», указывает на то, что клиент MySQL не может установить соединение с сервером MySQL. Давайте подробно разберемся с этой ситуацией.
1. Установка MySQL-сервера
Первое и самое важное, что нужно проверить — установлен ли сервер MySQL. В вашем случае вы установили только клиентскую часть MySQL. Для успешного подключения вам необходимо также установить сервер. Вы можете сделать это с помощью следующей команды:
sudo apt install mysql-server
Эта команда установит как сервер, так и необходимые зависимости. После этого убедитесь, что сервер запущен.
2. Проверка статуса сервера MySQL
После установки, проверьте статус службы MySQL. Используйте:
sudo systemctl status mysql
Если сервер запущен, вы увидите статус активен (active). Если служба не запущена или отсутствует, необходимо вручную её запустить:
sudo systemctl start mysql
3. Проверка конфигурации
Если сервер установлен, но не запущен, возможно, он не может стартовать из-за проблем в конфигурационных файлах. Первое, что стоит проверить — это журналы MySQL. Они находятся в /var/log/mysql/error.log
. Вы можете открыть этот файл и просмотреть сообщения об ошибках:
sudo less /var/log/mysql/error.log
4. Ошибка при попытке установки
Вы упомянули прямую ошибку при попытке установить MySQL-сервер из-за блокировки процесса unattended-upgr
. Это указывает на то, что другой процесс управления пакетами использует блокировку. Вы можете либо подождать завершения этого процесса, либо перезагрузить систему и попробовать снова. Если у вас уже нет запущих процессов, использующих эту блокировку, вручную удалите её:
sudo rm /var/lib/dpkg/lock-frontend
Затем выполните команду конфигурации:
sudo dpkg --configure -a
5. Проверка соединения
После завершения всех вышеупомянутых шагов попробуйте снова подключиться к MySQL:
mysql -u root -p
Если все прошло без проблем, вы должны быть в состоянии подключиться к серверу. Если ошибка сохраняется, выводите список работающих процессов, чтобы убедиться, что MySQL присутствует:
ps aux | grep mysqld
6. Альтернативные методы соединения
Если сервер, по-прежнему, не запускается, рекомендуется проверить файл конфигурации MySQL (/etc/mysql/my.cnf
). Убедитесь, что у вас нет ошибок в настройках, например, корректно ли указаны пути к сокету.
Так же проверьте права для каталога /var/run/mysqld
. Вам может понадобиться создать директорию, если она отсутствует, и установить правильные права:
sudo mkdir /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
После этого попробуйте снова перезапустить сервер:
sudo systemctl restart mysql
7. Заключение
Если ни один из вышеперечисленных шагов не помог, возможно, стоит переустановить MySQL. Убедитесь, что вы резервируете все важные данные перед выполнением этой операции.
Хорошая новость заключается в том, что установка и настройка MySQL на Ubuntu не должны вызывать больших затруднений, если следовать всем указанным шагам. Удачи в устранении проблемы, и не стесняйтесь задавать дополнительные вопросы, если необходимо!