Mysql拉取镜像并打包

本文介绍了使用Docker安装MySQL 5.7和MySQL 8的方法,包括搜索、拉取镜像等操作。还阐述了升级Docker安装的MySQL的步骤,如备份数据、启动MySQL 8容器(指定数据卷),并给出拒绝连接的解决办法,最后完成备份数据导入和用户创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker search mysql

选择支持centos7版本的mysql57: docker pull centos/mysql-57-centos7

docker images

docker save -o mysql-57-centos7.tar centos/mysql-57-centos7:latest

 docker load -i mysql-57-centos7.tar

--------------------------------------------------------------------------------

mysql 8

docker search mysql

docker pull mysql:latest

启动命令

docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

 mysql -uroot -h192.168.1.247 -P3306 -p******

docker save -o mysql-8.1.0.tar mysql:latest

docker load -i /opt/dockerinstall/mysql/mysql-8.1.0.tar

docker load -i /opt/dockerfile/mysql/mysql-8.1.0.tar

参考:docker安裝mysql(8.0.20)并且指定配置文件和数据存放位置_docker启动mysql指定配置文件_Koma-forever的博客-优快云博客

升级步骤
下面是升级Docker安装的MySQL的步骤:

步骤1:备份数据
在进行升级之前,我们应该首先备份MySQL的数据,以防止数据丢失。可以使用以下命令备份MySQL容器中的数据:

docker exec -it mysql57 /bin/bash

whereis mysql

/opt/rh/rh-mysql57/root/usr/bin/mysql

ls /opt/rh/rh-mysql57/root/usr/bin/

exit  退出容器

备份数据:

docker exec -it mysql57 /opt/rh/rh-mysql57/root/usr/bin/mysqldump -uroot -p123456 dinky > dinky_backup.sql

docker exec -it mysql57 /opt/rh/rh-mysql57/root/usr/bin/mysqldump -uroot -p123456 dolphinscheduler > dolphinscheduler_backup.sql

全部导出会把mysql的库也导下来,所以需要单个库导入

停止 mysql57

docker stop mysql57

6、启动mysql8容器(指定数据卷)

mkdir -p /usr/local/mysql

docker run --privileged=true --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /usr/local/mysql/logs:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf/:/etc/mysql/conf.d -v /usr/local/mysql/mysql-files:/var/lib/mysql-files -d mysql:latest

7、拒绝连接解决方法

docker exec -it mysql8 /bin/bash

mysql -u root -p123456

密码 123456

use mysql

update user set host = '%' where user = 'root' and host='localhost';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'user.PRIMARY'

select host,user from user where user = 'root';

grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;

flush privileges;

ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

FLUSH PRIVILEGES;

exit;  退出mysql

exit   退出容器

登录验证

mysql -uroot -h192.168.1.245 -P3306 -p123456

 mysql -uroot -h192.168.1.248 -P3306 -p123456

可以正常登录了

导入备份数据

上传备份文件

docker cp /opt/dockerfile/mysql/dinky_backup.sql mysql8:/opt/dinky_backup.sql

docker cp /opt/dockerfile/mysql/dolphinscheduler_backup.sql mysql8:/opt/dolphinscheduler_backup.sql

docker cp /opt/dockerinstall/mysql/dinky_backup.sql mysql8:/opt/dinky_backup.sql

docker cp /opt/dockerinstall/mysql/dolphinscheduler_backup.sql mysql8:/opt/dolphinscheduler_backup.sql

登录容器

docker exec -it mysql8 /bin/bash

登录mysql

mysql -uroot -p123456

#5.还原数据库

create database dinky;

use dinky;

source /opt/dinky_backup.sql;

create database dolphinscheduler;

use dolphinscheduler;

source /opt/dolphinscheduler_backup.sql;

异常问题:

ERROR 1231 (42000): Variable 'character_set_client' can't be set to the value of 'NULL'

不用处理

创建dinky用户:

use mysql

create user 'dinky'@'%' identified by '*****';

grant all privileges on dinky.* to 'dinky'@'%' with grant option;

flush privileges;

创建dolphin用户:

use mysql

create user 'dolphin'@'%' identified by '*****';

GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%';

flush privileges;

整体升级完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值