我正在尝试从本地 MariaDB 迁移到 Docker 版本,这本质上应该像迁移到新的 SQL Server 一样简单。我已经很好地设置了 Docker 容器,但似乎无法导入我的“所有数据库”转储。
这就是我得到的:
mysql -u root -p < mariadb_alldb_*.sql
Enter password:
ERROR 1050 (42S01) at line 8022: Table 'user' already exists
通过以下方式生成转储:
mysqldump -u root -p --all-databases --skip-lock-tables > mariadb_alldb_"$(date '+%F')".sql
更新:每次都在一个新的 docker 容器上运行,并且我在从中导入的目录中创建了备份。
ls * | grep mariadb_alldb_
mariadb_alldb_2020-05-04.sql
Update2:也许它与我的 docker 设置有关?
这是我的 docker cmd:
docker stop mariadb && docker rm mariadb
docker run -d --name="mariadb" \
-p 3306:3306 \
-e TZ="America/Whitehorse" \
-v "/opt/mariadb/conf/conf.d":"/etc/mysql/conf.d" \
-v "/opt/mariadb/backups":"/mnt/" \
--mount type=volume,dst=/var/run/mysqld,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/var/run/mysqld \
mariadb:latest
我正在从本地机器进行此导入,我已经从容器内部复制了结果。