docker 启动一个mysql服务

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: docker 启动一个mysql服务

一、pull官方镜像


选择一个指定的版本,或者直接拉去最新的mysql版本。

1. docker pull mysql:5.7   # 拉取 mysql 5.7
2. docker pull mysql       # 拉取最新版mysql镜像

二、查看镜像


docker images

 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
wordpress    php7.4    ccd598bc2c91   2 months ago   616MB
mysql        5.7       938b57d64674   3 months ago   448MB

三、运行容器(开启mysql服务)


最后冒号后面的是tag,就是版本,如果安装有多个版本的mysql是不是启动起来很方便。

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.22

容器销毁实例上的数据也会随之消失,所以需要将mysql 的数据目录映射在本地。

/opt/mysql 为宿主机目录 - >  存放数据的目录

/opt/mysql/conf -> my.cnf 配置

/opt/mysql/logs -> mysql log

  • -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
docker run -p 3306:3306 --name mysql \
-v /opt/mysql/conf:/etc/mysql \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

docker ps查看启动的mysql进程

四、如何登陆到客户端


docker exec -it 91521db55888 bash  进入容器中

mysql -uroot -p 登录mysql

拉去的是最新版本的mysql 8.0.27

登录时报错:7de8b23b2d77419b82c1098c77c08d74.png

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:

解决:


在容器中修改my.cnf 并重启容器.


/etc/mysql/my.cnf5221e1972c464abf93cbeb521456dc11.png如果容器中没有vim,用以下命令安装

apt-get update

apt-get install vim


注: skip-grant-tables跳过授权表,也就是说谁都能进入mysql看到所有数据表,输入任意字符账号密码都可以。 这个显然是不安全的。


--update 2022年1月17日10:17:58


mysql 5.7之后都会有一个临时密码,grep 'temporary password' /var/log/mysqld.log 获取旧密码,

然后修改掉这个密码mysqladmin -uroot -p"old password" password (ninesun0318)

docker启动的mysql的mysqld.log 放在什么位置?...

五、Mysql 常用命令


登录mysql

mysql -u root -p**


56c90315f20c417bbcd5d878e1ff3b5f.png

查看数据库


show databases

查看参数


show variables  查看全部参数.

如果需要查看某个参数,可以使用like

4f183601deaf481db393dd47e4dcc8a0.png

查看mysql增删改查提交回滚数量


mysqladmin extended-status

]# mysqladmin -uroot -p... extended-status | egrep "Com_insert|Com_delete|Com_update|Com_update|Com_commit|Com_rollback"
Warning: Using a password on the command line interface can be insecure.
| Com_commit                                    | 312548213      |
| Com_delete                                    | 119339         |
| Com_delete_multi                              | 0              |
| Com_insert                                    | 598940616      |
| Com_insert_select                             | 0              |
| Com_rollback                                  | 0              |
| Com_rollback_to_savepoint                     | 0              |
| Com_update                                    | 96513367       |
| Com_update_multi                              | 0              |

7c68f9682f504f3392bdf0b7933765ed.png

六、正常安装步骤


wget ftp://172.16.8.100/yumrepo/centos.repo -P /etc/yum.repos.d/
wget ftp://172.16.8.100/yumrepo/mysq157.repo -P /etc/yum.repos.d/
yum -y install lftp vim-enhanced bash-completion
#Firewall& selinux
systemctl stop firewall; systemctl disable firewall
setenforce 0; sed -ri/SELINUX/C\SELINUXedisabled /etc/selinux/config
#ntp 校时服务
yum -y install chrony
sed -ri '/3.centos/a\server 172.16.8.100 iburst' /etc/chrony.conf #sed a代表追加
systemctl start chronyd; systemctl enable chronyd
#install mysql5.7
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'>/root/mysqloldpass.txt #获取旧密码 
mysqladmin -uroot -p"`cat /root/mysqloldpass.txt`" password(ninesun0318) #修改密码
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
53 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
14天前
|
安全 网络安全 数据安全/隐私保护
docker服务未启动
【10月更文挑战第2天】
26 3
|
13天前
|
Linux iOS开发 Docker
docker服务未启动
【10月更文挑战第3天】
25 1
|
16天前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
42 3
|
16天前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库如何设置忽略表名大小写?
【10月更文挑战第1天】使用Docker部署的MySQL数据库如何设置忽略表名大小写?
46 1
|
16天前
|
弹性计算 关系型数据库 MySQL
Docker安装MySQL
这篇文章详细介绍了如何使用Docker安装MySQL数据库服务,包括拉取镜像、配置数据卷以及启动容器的步骤。
89 0
Docker安装MySQL
|
10天前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
16 0
|
16天前
|
关系型数据库 MySQL 数据库
如何使用Docker部署MySQL数据库?
【10月更文挑战第1天】如何使用Docker部署MySQL数据库?
103 0
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6
|
7天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
39 3
Mysql(4)—数据库索引