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

Docker 安装Mysql

目录

Docker Mysql安装

✨安装和配置mysql

✨远程连接mysql远程连接

MySQL 是世界上最流行的开源数据库。根据 DB-Engines的调查数据,MySQL 是第二受欢迎的数据库,仅次于 Oracle 数据库。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用

✨安装和配置mysql
  • 下载镜像mysql server 可选择,有:5.5/5.6/5.7/8.0
 docker pull mysql/mysql-server:8.0

  • docker images查看镜像
docker images

  • 在宿主机中创建相关目录,用于挂载容器的相关数据{comf,data} 注:cd 记得加上/ 目录底下的
mkdir -p /data/mysql/{conf,data}

  • 在conf创建一个配置文件 把配置内容写入
vim my.cnf
--配置内容
[client]
default-character-set=utf8
​
[mysql]
default-character-set=utf8
​
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
  • 创建一个容器 映射端口
docker run -p 3307:3306 \--name mysql \-v /data/mysql/conf/my.cnf:/etc/my.cnf \-v /data/mysql/data:/var/lib/mysql \--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=123456 \mysql/mysql-server:5.7  

解析:

-p 3306:3306:宿主机端口:容器端口

--name mysql:容器名字

-v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件、数据文件 -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysq --privileged=true:使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一个普通用户权限 --restart=always:容器自动启动参数,其值可以为[no,on-failure,always] no为默认值,表示容器退出时,docker不自动重启容器 on-failure表示,若容器的退出状态非0,则docker自动重启容器, 还可以指定重启次数,若超过指定次数未能启动容器则放弃 always表示,只要容器退出,则docker将自动重启容器 -e MYSQL_ROOT_PASSWORD=123456:设置root的密码 -d mysql/mysql-server:5.7:后台启动模式及使用的镜像 - d可加可不加

可能有点小问题 我们的3306被占用

✨修改即可了 我们容器已经创建了一遍 记得删除 docker rm -f mysql

这样就设置成功了

  • 进入容器 登入mysql
docker exec -it mysql bash

密码在做容器挂载 端口映射的时候 已经设置了 我这边是123456

显示mysql 就已经登入成功了

  • 进入之后 实列:运行一个sql脚本

在我们先前创建的 mysql{data}里面创建一个文件夹 用来存放我们宿主机中的数据

我们创建了一个sql文件夹用来存放 数据

把宿主机上的数据直接复制到sql文件夹里

然后我们就可以进行下一步了

  • 创建一个数据库

use 进入数据库 运行source 运行sql文件 

查看表

show tables

这样就做到了一个数据的持久化

✨远程连接mysql

  • 创建一个用户 create 实现用户远程连接 kbin@'%'

create user kbin@'%' identified by '123456';

  • 给用户授权 all 全部权限给shop数据库里的 kbin

grant all on shop.*to kbin@'%'

刷新数据库

FLUSH PRIVILEGES

进行远程连接

如果失败连接 请查看一下 防火墙是否关闭

查看防火墙 状态

systemctl status firewalld

关闭防火墙

systemctl stop firewalld

dead关闭成功

远程连接

输入 创建设置的远程用户

create user kbin@'%' identified by '123456';
  • 然后就可以编辑了

http://www.lryc.cn/news/272195.html

相关文章:

  • Pillow图像处理(PIL.Image类的详细使用)
  • 嵌入式开发——ADC开发
  • FreeSWITCH t38测试
  • 跑腿配送系统技术探析
  • 【数据不完整?用EM算法填补缺失】期望值最大化 EM 算法:睹始知终
  • PMP证书可以挂靠吗?
  • HTML语义化的理解
  • (Java企业 / 公司项目)注册,配置中心Nacos的怎么使用?(含相关面试题)(一)
  • 计算机网络---知识点
  • 力扣42. 接雨水
  • SpringSecurity-2.7中跨域问题
  • Java解决字典序最小回文串
  • 【力扣100】207.课程表
  • 2024年生成式AI支出将翻倍,到2027年将超1500亿美元
  • 【代码随想录】刷题笔记Day42
  • 数据库云平台新数科技完成B轮融资,打造全链路智能化数据库云平台
  • 【Linux 内核源码分析】Linux内核通知链机制
  • 2023年度回顾:怿星科技的转型与创新
  • STM32MP157D-DK1 Qt程序交叉编译与运行测试
  • Rancher 单节点 docker 部署备份与恢复
  • WPF容器的背景对鼠标事件的影响
  • pve虚拟机无法开机‘ha-manager set vm:101 --state started‘ failed: exit code 255
  • 官宣!亚信安全TrustOne实力代言“中国新一代终端安全”
  • Text visualization : pipeline,wordle,phrase net,word tree
  • C# WPF上位机开发(报表导出)
  • CentOS7安装部署Zookeeper
  • OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”
  • Oracle 19C DBA管理常用命令
  • BIO和NIO编程(待完善)
  • 基于RocketMQ实现分布式事务