当前位置: 首页 > news >正文

docker安装mysql8和mysql5.7

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

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

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并挂载数据卷日志配置文件

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
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
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

docker ps 
docker exec -it mysql8 bash  #进入mysql容器
mysql -u root -p123456
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;
-- 创建新数据库 (替换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);
http://www.lryc.cn/news/364520.html

相关文章:

  • 通过一个例子,说明Python的责任链设计模式有什么优缺点
  • 场地预定小程序基于FastAdmin+UniApp
  • CrossPrefetch: Accelerating I/O Prefetching for Modern Storage——论文泛读
  • 详解 Spark Streaming 的 DStream 对象
  • QT常用控件
  • 如何解决chatgpt出现503 bad gateway的问题
  • Halcon 双相机标定与拼图(二)
  • 【加密与解密】【04】Java安全架构
  • 论文阅读:Neural Scene Flow Prior
  • 如何通过 6 种简单方法将照片从华为转移到 PC?
  • QtCharts使用
  • 深入分析 Flink SQL 工作机制
  • Spring Bean参数校验Validator
  • AOP案例
  • Facebook海外户Facebook广告被暂停的原因
  • 网站企业需要适用于什么服务器?
  • winscp无法上传,删除,修改文件并提示权限不够的分析
  • Hadoop3:MapReduce之InputFormat数据输入过程整体概览(0)
  • 【Leetcode Python】70.爬楼梯
  • 深度学习 - 张量的广播机制和复杂运算
  • 【CSS】will-change 属性详解
  • linux安装mysql后,配置mysql,并连接navicat软件
  • 【学习笔记】Axios、Promise
  • 自然资源-关于加强规划实施监督管理的指导意见(浙江省自然资源厅学习借鉴)
  • 408链表的创建和初始化
  • Python数据框/列表生成一列多个同样的值
  • 使用 MDC 实现日志链路跟踪,包教包会!
  • 【成都信息工程大学】只考程序设计!成都信息工程大学计算机考研考情分析!
  • 将单列数据帧转换成多列数据帧
  • 信息学奥赛初赛天天练-20-完善程序-vector数组参数引用传递、二分中值与二分边界应用的深度解析