docker 启动一个mysql服务

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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) #修改密码
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
43 14
|
3天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
27 7
|
18天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
93 24
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
291 1
|
2月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
139 3
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
190 2
|
3月前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
32 6
|
13天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
13天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
42 3

热门文章

最新文章