【原创】Ubuntu 18.04 Docker 安装与运行 MySQL 5.7 – 简要版

2024-06-15 20:18

本文主要是介绍【原创】Ubuntu 18.04 Docker 安装与运行 MySQL 5.7 – 简要版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装准备

1、相关环境

Ubuntu 18.04 x64

Docker 19.03

MySQL Server CE 5.7.31

2、安装用户

使用具有 sudo 权限的普通用户安装

安装步骤

1、拉取镜像

sudo docker pull mysql/mysql-server:5.75.7: Pulling from mysql/mysql-server
e945e9180309: Pull complete 
bda404c4d2e2: Pull complete 
858855003112: Pull complete 
d92ed785684c: Pull complete 
Digest: sha256:6d6fdd5bd31256a484e887c96c41abfc9ee3e3deb989de83ebdb8694fcc83485
Status: Downloaded newer image for mysql/mysql-server:5.7
docker.io/mysql/mysql-server:5.7

查看镜像

sudo docker images | grep mysql
mysql/mysql-server   5.7                 9c31a29b3f30        6 weeks ago         322MB

2、运行容器

sudo docker run -p 3306:3306 --name mysql -d mysql/mysql-server:5.7

3、查看容器运行状态

sudo docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                    PORTS                               NAMES
e1a229279e59        mysql/mysql-server:5.7   "/entrypoint.sh mysq…"   31 seconds ago      Up 31 seconds (healthy)   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

4、查看容器运行日志

sudo docker logs mysqlsudo docker logs mysql
[Entrypoint] MySQL Docker Image 5.7.31-1.1.17
[Entrypoint] No password option specified for new database.
[Entrypoint]   A random onetime password will be generated.
[Entrypoint] Initializing database
[Entrypoint] Database initialized
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
[Entrypoint] GENERATED ROOT PASSWORD: 3l2icGisqUL.yGdUm(usJOLhAR
[Entrypoint] ignoring /docker-entrypoint-initdb.d/*
[Entrypoint] Server shut down
[Entrypoint] Setting root user as expired. Password will need to be changed before database can be used.
[Entrypoint] MySQL init process done. Ready for start up.
[Entrypoint] Starting MySQL 5.7.31-1.1.17

5、获取 MySQL Server 初始 root 密码

sudo docker logs mysql 2>&1 | grep "ROOT PASSWORD"
[Entrypoint] GENERATED ROOT PASSWORD: 3l2icGisqUL.yGdUm(usJOLhAR

6、使用 mysql client 命令连接到 MySQL Server

输入如下命令并回车,然后输入上一步搜索到的 root 初始密码

sudo docker exec -it mysql mysql -uroot -p
Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.31
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

7、更新 root 密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@2020';
Query OK, 0 rows affected (0.00 sec)

8、连接到 MySQL Server 容器内部 shell 环境

sudo docker exec -it mysql bash
bash-4.2#

9、MySQL Server 配置文件、数据文件

配置文件位置

/etc/my.cnf

数据文件、日志文件等

bash-4.2# pwd
/var/lib/mysql
bash-4.2# ls
auto.cnf    ca.pem           client-key.pem  ib_logfile0  ibdata1  mysql       mysql.sock.lock     private_key.pem  server-cert.pem  sys
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile1  ibtmp1   mysql.sock  performance_schema  public_key.pem   server-key.pem
bash-4.2#

10、创建一个可远程连接的 MySQL Server 数据库用户

sudo docker exec -it mysql mysql -uroot -p
[sudo] password for jiangzl: 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 5.7.31 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant all privileges on *.* to 'test'@'%' identified by 'test1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

注:

a、上面的命令有可能会需要输入两次密码(当前会话第一次使用 sudo 命令或者 sudo 命令使用过了 session 有效期),第一次是输入 Ubuntu 操作系统用户的密码以获取 root 权限,第二次是输入 MySQL Server 的 root  密码以连接到 MySQL Server。

b、创建用户后可以使用 MySQL Client 工具连接到数据库

dbeaver 连接 MySQL Server 示例:

填写 Ubuntu 的网络地址,端口号,用户名与密码,点击测试连接。显示已连接则连接成功。

c、以上安装方式仅是基础的安装方式,有很多需要配置的地方均未配置。因此,文档内容仅推荐开发或测试环境使用或者仅供参考。

附录

1、常用命令

sudo docker stop mysql # 停止容器名为 mysql 的容器
sudo docker start mysql # 启动容器名为 mysql 的容器(针对已经使用 sudo docker run 运行后的容器)
sudo docker restart mysql # 重启容器名为 mysql 的容器
sudo docker rm mysql # 删除容器名为 mysql 的容器
sudo docker rmi mysql/mysql-server:5.7 # 删除镜像名为 mysql/mysql-server,tag 为 5.7 的 mysql-server 容器

2、参考:

https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-getting-started.html

这篇关于【原创】Ubuntu 18.04 Docker 安装与运行 MySQL 5.7 – 简要版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064471

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我