Вот все работало в субботу (вчера). Обновился на домашнем компе
Docker Desktop (под
MacOS Sonoma 14.0) и началось. Сначала все базы во внешнем томе потерялись. Точнее не потерялись, а перестал контейнер стартовать. Самое странное, что восстановленные
Docker Desktop и каталога/тома с самими БД из
Time Machine не починили проблему. Наверное надо еще что-то системное из
Time Machine вернуть.
Ну ладно. Для пет-проектов не важно. Можно и новую базу взять (и новый контейнер построить, заодно посмотреть что в 11ю
MariaDB завезли). Сделал вот такой контейнер:
version: "3.1"
services:
mariadb:
container_name: MariaDB_11.1.2
image: mariadb:11.1.2
volumes:
- /Users/[user]/docker-data/mariadb_data:/var/lib/mysql
- /tmp:/var/run/mysqld
environment:
- MARIADB_ROOT_PASSWORD=***
- TZ=Europe/Moscow
ports:
- 127.0.0.1:3306:3306
command:
--bind-address=0.0.0.0
--skip_ssl=true
restart: always
Создал в базе пользователя, проверил через
DataGrip -- коннектится, создает таблицы, запросы выполняет...
Но Python/Django ругается:
django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
Заглянул в
/tmp/
-- там никакого
mysql.sock
нет. Есть
mysqld.sock
. Странно, раньше все находило. Ну ладно, переделал контейнер (добавил
--socket=/var/run/mysqld/mysql.sock):
version: "3.1"
services:
mariadb:
container_name: MariaDB_11.1.2
image: mariadb:11.1.2
volumes:
- /Users/[user]/docker-data/mariadb_data:/var/lib/mysql
- /tmp:/var/run/mysqld
environment:
- MARIADB_ROOT_PASSWORD=***
- TZ=Europe/Moscow
ports:
- 127.0.0.1:3306:3306
command:
--bind-address=0.0.0.0
--skip_ssl=true
--socket=/var/run/mysqld/mysql.sock
restart: always
В папке
/tmp
стал появляться
mysql.sock
. Но ошибка не пропала. Django продолжает ругаться
"Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
Проверил
MYSQL CLIENT_CFLAGS и
MYSQL CLIENT_LDFLAGS -- ничего не изменилось. DataGrip, несмотря на изменение соккета, продолжает коннектиться. А
mysqlclient -- не хочет. Я
mysqlclient и переустанавливал. И вообще нет идей как это починить.
UPD1: Переустановил системный
mariadb-connector-c. Стал ругаться что нет
mysqlclient... хотя он есть!
UPD2: есть идея обновиться до Sonoma 14.1... и если не поможет -- вообще вернуть состояние всей системы на вечер субботы, когда еще все работало. Но это уступки трудностям (и долго), хочется разобраться.