docker 中安装 MySQL 以及使用

芝士年糕
• 阅读 518

环境:我使用3A服务器搭建centos7 简介 这里的实现思路是,先拉取完 MySQL 镜像之后,启动 MySQL 容器,然后将 MySQL 的配置文件拉取到本地,关闭之前启动的容器,重新使用挂载的方式启动。 第一步: 拉取 mysql 镜像 docker pull mysql docker 中安装 MySQL 以及使用

第二步: 在本地创建用于挂载的目录 这里是用来在本地创建一个 conf 文件,以后启动 docker 中的 mysql 时,就使用这个配置文件

// 用于挂载mysql数据文件 -p 指的是没有父级的时候,创建父级文件夹 sudo mkdir -p /apps/mysql/data

// 用于挂载mysql配置文件 sudo mkdir /apps/mysql/conf

// 上面的两个步骤,可以使用下面这个命令来执行 mkdir -p /apps/mysql/{conf,data}

// 修改 /my 目录拥有者 sudo chown root:docker $PWD/mysql

第三步:查看 mysql 配置文件的路径,复制配置文件到本地 这里是需要进入 docker 容器中,查看 容器中的配置文件路径,将配置文件复制到本地

启动一个测试的容器 docker run --name mysqltest
-p 3307:3306 -e MYSQL_ROOT_PASSWORD=root
-d mysql

访问 mysql 容器 docker exec -it mysqltes /bin/sh

查找Docker内,MySQL配置文件my.cnf的位置 mysql --help | grep my.cnf

显示如下,意思是路径按优先排序,会是在以下路径里: 配置文件的路径不一定都一样,有些博客介绍的位置是在/etc/my.cnf。 而我这个系统上面实际存在位置是在/etc/mysql/my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf docker 中安装 MySQL 以及使用

创建好本地的挂载数据路径后,我们再将测试容器里 MySQL 的配置文件复制到该路径。日后需改配置,直接在挂载路径的配置文件上修改即可。

docker cp mysqltest:/etc/mysql/my.cnf /apps/mysql/conf 第四步: 使用镜像创建容器 这里介绍两种挂载的方式,使用下面其中一种就好。

使用 -v 挂载方式

这里需要切换到 /apps/mysql 目录下

docker run --name mysql -p 3306:3306 -v $PWD/data:/var/lib/mysql -v $PWD/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql 命令解析:

--name:容器名 --p:映射宿主主机端口 -v:挂载宿主目录到容器目录 -e:设置环境变量,此处指定root密码 -d:后台运行容器 docker 中安装 MySQL 以及使用 使用 -mount 方式创建 这里使用的是说,将本地的配置文件提供给 docker 中的容器读取。 docker run --name wp-mysql
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=root
--mount type=bind,src=/apps/mysql/conf/my.cnf,dst=/etc/mysql/my.cnf
--mount type=bind,src=/apps/mysql/data,dst=/var/lib/mysql
--restart=on-failure:3
-d mysql 第五步: 进入docker 容器内部对 mysql 配置 这里是为了让 mysql 可以让外部访问

进入 mysql 容器直接访问 mysql 服务

docker exec -it mysql /bin/sh

连接到mysql

mysql -uroot -p

输入上面设置的密码 123456

docker 中安装 MySQL 以及使用

第六步:设置MySQL可以外部访问

创建一个账号,用来进行远程访问;

{usernama} 是远程访问登录的用户名,不建议用 root;

{password} 是远程访问的登录密码;

'%'代表的是所有IP,如果可以尽量设置指定 IP 或 IP 段

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

赋予所有权限给之前创建的账号

GRANT ALL ON . TO 'username'@'%';

确认使用这里的密码登录此账号

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

刷新权限

FLUSH PRIVILEGES; 完整的命令为

创建一个账号-admin,用来进行远程访问;

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';

赋予所有权限给之前创建的账号:admin

GRANT ALL ON . TO 'admin'@'%';

确认使用密码{123456}登录此账号{admin}

密码尽量复杂,安全性更高。

ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

刷新权限

FLUSH PRIVILEGES; 连接成功的图

docker 中安装 MySQL 以及使用

点赞
收藏
评论区
推荐文章
zdd小小菜鸟 zdd小小菜鸟
1年前
windows--docker-seata使用file启动
dockerseatawindows使用file启动1.搜索seata镜像shelldockersearchseataserver2.拉取seata镜像shelldo
zdd小小菜鸟 zdd小小菜鸟
1年前
windows--docker-指定ip启动mysql
windowsdocker指定ip启动mysql前提条件tex默认电脑已经安装好了docker,以及自定义配置docker的网络;若无请参考安装1.搜索mysql镜像shelldockersearchmysql2.拉取镜像shelldockerpullmy
zdd小小菜鸟 zdd小小菜鸟
1年前
docker-seata-windows使用file启动
dockerseatawindows使用file启动1.搜索seata镜像shelldockersearchseataserver2.拉取seata镜像shelldo
Stella981 Stella981
2年前
Docker常用命令,Docker安装Nginx、Redis、Jenkins、tomcat、MySQL
常用命令拉取镜像:dockerpullxxx启动镜像:dockerrunnamexxx8080:8080dxxx查看容器:dockerpsxxx停止容器:dockerstopxxx启动容器:dockerstartxxx删除容器:dockerrmxxx删除镜像:docke
Wesley13 Wesley13
2年前
01.Docker安装MongoDB
1.查询MongoDB镜像dockersearchmongo1.拉取MongoDB镜像dockerpullmongo拉取指定版本镜像dockerpullmongo:3.41.启动MongoDB容器dockerrunp27017:27017namemym
Stella981 Stella981
2年前
Docker应用部署
1.MySQL部署拉取MySQL镜像:dockerpull镜像名创建容器:dockerrunidname容器名p3306:33306eMYSQL\_ROOT\_PASSWORD123456 镜像名\e代表添加环境变量,MYSQL\_ROOT\_PASSWORD是用户root的登陆密码  进入MySQL容
Stella981 Stella981
2年前
Docker 下的Zookeeper以及.ne core 的分布式锁
单节点1.拉取镜像:dockerpullzookeeper2.运行容器a.我的容器同一放在/root/docker下面,然后创建相应的目录和文件,mkdirzookeepercdzookeepermkdirdatamkdirdatalogmkdirconfcdc
Stella981 Stella981
2年前
Docker(三)——应用部署(MySQL部署,Nginx部署,Redis部署)
一、MySQL部署1.拉取mysql5.7镜像dockerpullmysql:5.72.创建容器,启动mysql5.7(建议别用最新版本的mysql)dockerrunidnamemysql1p3306:3306eMYSQL_ROOT_PASSWORD123456mysql:5.7
Stella981 Stella981
2年前
Docker下redis的主从配置
1、拉取redis镜像dockerpullredis2、启动3个redis容器服务,分别使用到6379、6380、6381端口dockerrunnameredis6379p6379:6379dredisdockerrunnameredis6380p6380:6379dredis
Stella981 Stella981
2年前
CentOS安装Jenkins
一、war包安装方式1、准备tomcat、jdk1.82、下载jenkins.war。下载地址:https://jenkins.io/zh/download/3、将jendins.war放到$TOMCAT\_HOME/webapps目录下,启动tomcat即可二、docker安装1、拉取镜像https://hub.docker.co