因为一些原因,要用到旧版本的mysql,但是debian11系统中,尝试了多种方法,都不能很好的实现,所以,采用了docker 来安装。这里做一下记录。
1. 参考链接: url: https://hub.docker.com/_/mysql/
2. 编辑 Abc_docker.yml 文档 . (根据需要,修改容器名和密码,也就是root用户的密码;默认mysql的root用户可远程登录)
version: '3.1'
services:
db:
image: mysql:5.6
command: --default-authentication-plugin=mysql_native_password
restart: always
container_name: Abc_mysql
volumes:
- ./Mysql/mysql:/var/lib/mysql
- ./Mysql/conf:/etc/mysql
- /etc/localtime:/etc/localtime
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456789
ports:
- 23456:3306
adminer:
image: adminer
restart: always
container_name: Abc_adminer
ports:
- 8079:8080
提示: 官方是代有adminer的,也可以删去这一部分,使用phpMyAdmin 远程登录。默认root是可以远程登录数据库的
3.在与 MySQL-docker.yml相同的文件夹下,新建文件夹
mkdir Mysql/mysql /Mysql/conf
# 这两个文件夹分别存放mysql的数据和配置文档
4. 启动容器,使用浏览器登录 adminer,管理数据库
docker-compose -f Abc_mysql.yml up -d
# 在配置文件中,定义了两个容器,名称分别是Abc_mysql 和Abc_adminer
# 可以用http://host-ip:8079 使用root账户和你所设定的密码来进入管理工具
5. 命令行下导出和导入数据库
# 首先是导出
docker exec Abc_mysql sh -c 'exec mysqldump --all-databases -uroot -p"123456789"' > /home/data_back/all-databases.sql
# 导入备份过的数据库
docker exec -i Abc_mysql sh -c 'exec mysql -uroot -p"123456789"' < /home/data_back/all-databases.sql
# 以上是在普通命令行下进行。 可以选择进入容器,用命令行进行其他操作
docker exec -it Abc_mysql bash