docker安装mysql8和mysql5.7

1.docker安装mysql5.7,请点击此链接

2.docker安装mysql8并挂载数据卷

bash 复制代码
docker pull mysql:8.0
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -v /mqq/mysql8/datadir:/var/lib/mysql -d mysql:8.0

这里,-v /data/mysql8/datadir:/var/lib/mysql 将主机上的/data/mysql8/datadir目录挂载到容器内的/var/lib/mysql,用于持久化数据。

请确保替换命令中的路径和密码为您自己的实际路径和密码。

3.docker安装mysql8并挂载数据卷日志配置文件

bash 复制代码
docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
docker ps
mkdir -p /mqq/mysql8.0.20/
docker cp  mysql:/etc/mysql /mqq/mysql8.0.20/
docker rm -f mysql
bash 复制代码
cd /mqq/mysql8.0.20/mysql/conf.d
cat >  my.cnf << EOF
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
collation-server=utf8_general_ci

[client]
default-character-set=utf8
 
[mysql]

EOF
bash 复制代码
docker run \
-p 3336:3306 \
--name mysql8 \
--privileged=true \
--restart unless-stopped \
-v /mqq/mysql8.0.20/mysql:/etc/mysql \
-v /mqq/mysql8.0.20/logs:/logs \
-v /mqq/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20

-p 端口映射 【后续链接数据库的时候用3336链接不用3306】

--name mysql8 名称是mysql8

--privileged=true 挂载文件权限设置

--restart unless-stopped 设置 开机后自动重启容器

-v /mqq/mysql8.0.20/mysql:/etc/mysql \ 挂载配置文件【路径是上面创建的挂载路径】

-v /mqq/mysql8.0.20/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】

-v /mqq/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】

-v /etc/localtime:/etc/localtime 容器时间与宿主机同步

-e MYSQL_ROOT_PASSWORD=123456 设置密码

-d mysql:8.0.20 后台启动,mysql

bash 复制代码
docker ps 
docker exec -it mysql8 bash  #进入mysql容器
bash 复制代码
mysql -u root -p123456
bash 复制代码
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;  #为root分配权限,以便可以远程连接
use mysql
update user set host='%' where user='root';
#由于Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,便于使用Navicat连接
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
bash 复制代码
-- 创建新数据库 (替换your_database_name为你的数据库名)
CREATE DATABASE school;
 
-- 选择数据库
USE school;

-- 创建一个名为 class的表,包含三列:id, name, age
CREATE TABLE Class1Grade1 (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL
);
 
-- 插入数据
INSERT INTO Class1Grade1 (name, age) VALUES ('Alice', 6);
INSERT INTO Class1Grade1 (name, age) VALUES ('Bob', 6);
INSERT INTO Class1Grade1 (name, age) VALUES ('Charlie', 7);
INSERT INTO Class1Grade1 (name, age) VALUES ('马强', 7);
INSERT INTO Class1Grade1 (name, age) VALUES ("刘洪", 7);
相关推荐
万联WANFLOW8 分钟前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p
SDWAN_Cheap16 分钟前
物理服务器跟云服务器有什么区别,使用于什么场景
运维·服务器
螺蛳粉 螺蛳粉2 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
福建佰胜张工2 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
wefg12 小时前
【Docker】镜像相关指令
运维·docker·容器
feng_you_ying_li3 小时前
linux之网络层
linux·运维·网络
未来之窗软件服务3 小时前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
卓豪终端管理3 小时前
IT 运维视角下的终端数据安全:能力框架与落地清单
运维
小雉系统3 小时前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian
甜到心里的蛋糕3 小时前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作