Mariadb на Raspbian: не удается подключиться к локальному серверу MySQL через сокет

Я устанавливаю «чистый» образ для своего домашнего Raspberry pi с последней версией Raspbian и обнаруживаю небольшую проблему при установке базы данных mariadb.

До сих пор я предпринял следующие шаги:

  sudo apt-get install -y mariadb-server

  sudo nano /etc/mysql/my.cnf

Добавьте следующие строки в my.cnf:

  [mysqld]
  datadir=/mnt/RaspberryData/mysql
  socket=/mnt/RaspberryData/mysql/mysql.sock
  [client]
  port=3306
  socket=/mnt/RaspberryData/mysql/mysql.sock

Путь /mnt/RaspberryData/mysqlсодержит информацию о базе данных моя предыдущая установка, которая была настроена через жесткую ссылку. Это может быть или не быть проблемой.

Затем выполните:

  sudo sytemctl start mariadb
  journalctl -u mariadb

И вот когда у меня возникает проблема:

Jun 22 19:18:33 raspberrypi systemd[1]: Starting MariaDB 10.3.22 database server...
Jun 22 19:18:34 raspberrypi mysqld[2623]: 2020-06-22 19:18:34 0 [Note] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB-0+deb10u1) starting as process 2623 ...
Jun 22 19:18:35 raspberrypi systemd[1]: Started MariaDB 10.3.22 database server.
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Looking for 'mysql' as: /usr/bin/mysql
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Version check failed. Got the following error when calling the 'mysql' command line client
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: FATAL ERROR: Upgrade failed

Как видите, есть некий процесс обновления, который пытается подключиться через сокет, расположенный в /var/run/mysqld /mysqld.sock, но по этому пути ничего нет (только файл mysqld.pid).

Я предполагаю, что в руководствах по перемещению данных из одного места в другое пропущен какой-то процесс или еще что-то, так как я действительно могу войти в базу данных и выполнять запросы. Итак, что я здесь упускаю?

0
22.06.2020, 21:56
1 ответ

Хорошо, я нашел то, что осталось в моей конфигурации.

Имейте в виду, что это может быть немного излишним (читать :изменять больше файлов, чем нужно ), но если кто-то более мудрый не придет меня учить, я буду доволен этим:

Итак, начнем с чтения файла my.cnf:

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.

Моя проблема заключалась в том, что процесс обновления пытался использовать сокет, определенный где-то . Очевидно, что «где-то» означало (надеюсь )«в конфигурационном файле», поэтому я погрузился в эти файлы :

.

Переход sudo nanoк файлам, перечисленным (, особенно к тем, которые находятся под /etc/mysql/mariadb.conf.d/*.cnf, показал мне несколько записей для сокета, которые сохранили исходное значение в папке /run/. Поэтому я изменил его на новую папку «на всякий случай». Оказывается, один из файлов указан как комментарий, который я должен Not forget to update debian.cnf if you change the socket. Что ж, спасибо, г-н Создатель базы данных, потому что вы в основном даете мне реальный ответ, так как debian.cnf, даже несмотря на то, что у него есть огромный комментарий «НЕ ТРОГАТЬ» выше, есть этот раздел ниже:

[mysql_upgrade]
host     = localhost
user     = root
password =
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Кажется, именно этот процесс и дал сбой.

Итак, tl;dr :Просмотрите все файлы, перечисленные в my.cnfи на всякий случай измените значение сокета. Также debian.cnf. И если вы чувствуете себя достаточно предприимчивым, измените только debian.cnfи, пожалуйста, расскажите мне, что произошло.

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

0
18.03.2021, 23:25

Теги

Похожие вопросы