手把手教你在CentOS7.9上使用docker 安装MySQL5.7

news2024/11/25 7:04:51

前言

大家好,又见面了,我是沐风晓月,本文主要讲解如何用docker在centos7.9系统上安装MySQL5.7,以及如何设置MySQL的远程登录。

文章收录到【容器管理】和【数据库入门到精通专栏】,此专栏是沐风晓月对linux云计算架构实战方向的内容进行的总结,希望对你有用。
在这里插入图片描述

文章目录

    • 前言
    • 实验环境
    • 一. docker的安装
      • 1.1 从阿里下载repo镜像
      • 1.2 安装docker
      • 1.3 启动docker并查看版本
      • 1.4 设置加速
    • 二. 安装mysql5.7
      • 2.1 查看可用mysql镜像
      • 2.2 下载mysql5.7
    • 2.3 创建实例并启动
      • 2.4 查看并测试
      • 2.5 修改mysql的字符编码
    • 2.6 远程登录数据库
    • 三. python连接mysql案例
      • 3.1 查看版本
      • 3.2 创建数据库
    • 总结

实验环境

  • 查看操作系统
[root@mufeng41 ~]# cat /etc/redhat-release 
CentOS Linux release 7.9 (Core) 
  • 查看IP

[root@mufeng41 ~]# ifconfig |grep inet |awk 'NR==1{print $2}'
192.168.1.41
[root@mufeng41 ~]# ifconfig |grep inet|sed -n '1p'  |awk '{print $2}'
192.168.1.41
[root@mufeng41 ~]# 

一. docker的安装

1.1 从阿里下载repo镜像

[root@mufenggrow ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

这条命令下载完成后,会把repo包放在/etc/yum.repos.d/下

在这里插入图片描述

使用命令可以查看到我们的repo包,如果没有,说明没有下载成功:

在这里插入图片描述

1.2 安装docker

[root@mufenggrow ~]# yum install docker-ce -y   
## 使用yum安装

安装速度可能稍慢,这时候只需要耐心等待完成即可

1.3 启动docker并查看版本

启动docker

[root@mufenggrow ~]# systemctl  start docker

查看版本

[root@mufeng41 yum.repos.d]#  docker --version
Docker version 24.0.2, build cb74dfc

[root@mufeng41 yum.repos.d]# docker version
Client: Docker Engine - Community
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:55:21 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:54:24 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@mufeng41 yum.repos.d]# 


1.4 设置加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ywrd8tun.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二. 安装mysql5.7

2.1 查看可用mysql镜像

[root@mufeng41 ~]# docker search mysql
NAME                            DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   14230     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5438      [OK]       
percona                         Percona Server is a fork of the MySQL relati…   615       [OK]       
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   824       [OK]       
bitnami/mysql                   Bitnami MySQL Docker Image                       89                   [OK]
circleci/mysql                  MySQL is a widely used, open-source relation…   29                   

  • NAME:镜像的名称或标签。
  • DESCRIPTION:对镜像的描述。
  • STARS:镜像的星级评分,表示用户对该镜像的关注程度。
  • OFFICIAL:是否官方镜像,“[OK]” 表示是官方镜像。 AUTOMATED:是否自动构建的镜像

2.2 下载mysql5.7

[root@mufeng41 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete 
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@mufeng41 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mysql        5.7       c20987f18b13   18 months ago   448MB

2.3 创建实例并启动

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

参数说明:

  • -p 3306:3306 将容器的3306端口映射到主机的3306端口
  • -v /mydata/mysql/log:/var/log/mysql \ 将日志文件挂载到主机
  • -v /mydata/mysql/data:/var/lib/mysql \ 将配置文件挂载到主机
  • -v/mydata/mysql/conf:/etc/mysql \ 将配置文件挂载到主机
  • -e MYSQL_ROOT_PASSWORD=root \ 设置mysql的密码

2.4 查看并测试

[root@mufeng41 ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED              STATUS              PORTS                                                  NAMES
49f85506f9ea   mysql:5.7   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

[root@mufeng41 ~]# docker exec -it mysql /bin/bash

root@49f85506f9ea:/# mysql -proot



mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> 

2.5 修改mysql的字符编码

[root@mufeng41 ~]# vim /mydata/mysql/conf/my.cnf
[root@mufeng41 ~]# cat !$
cat /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

这些配置项的含义如下:

  • [client] 和 [mysql] 部分指定了客户端的默认字符集为 utf8,确保 MySQL 客户端连接时使用 UTF-8 字符集。

[mysqld] 部分包含了 MySQL 服务器的配置项:

  • init_connect 配置项设置了连接建立时要执行的初始 SQL 语句。这里通过两个参数分别设置了连接的字符集和名称为 utf8。
  • character-set-server 配置项定义了服务器默认字符集为 utf8。
  • collation-server 配置项定义了服务器默认排序规则为 utf8_unicode_ci,即对于 Unicode 字符集使用的排序规则。
  • skip-character-set-client-handshake 配置项用于跳过 MySQL 客户端的字符集验证。
  • skip-name-resolve 配置项用于禁用反向 DNS 查找,可以提高连接速度。
    这些配置项通常用于确保 MySQL 在连接、存储和处理数据时使用适当的字符集和排序规则。

重启生效

[root@mufeng41 ~]# docker restart mysql
mysql
# 设置启动docker的时候就运行mysql
[root@mufeng41 ~]# docker update mysql --restart=always
mysql

2.6 远程登录数据库

[root@mufeng41 ~]# mysql -uroot -proot -h 192.168.1.41

三. python连接mysql案例

3.1 查看版本

import pymysql
#创建connection对象为db
db = pymysql.connect(host="192.168.1.41",port=3306,user="root",passwd="root",db="mysql",charset='utf8')
#创建cursor游标,获取python版本信息
cursor = db.cursor()
#获取mysql版本信息
cursor.execute("select version()")
#将上面的版本结果存放到data中
data = cursor.fetchone()
print(f"版本信息为{data}")
#关闭数据库连接
db.close()

3.2 创建数据库

import pymysql
#创建connection对象为db
db = pymysql.connect(host="192.168.1.41",port=3306,user="root",passwd="root",charset='utf8')

#创建cursor游标
cursor = db.cursor()
#创建数据库
database_name = "aa"


cursor.execute(f"SHOW DATABASES LIKE '{database_name}';")
result = cursor.fetchone()

if result is None:
    # 数据库不存在,创建数据库
    cursor.execute(f"CREATE DATABASE {database_name}")
    print(f"数据库 {database_name} 创建成功")
else:
    print(f"数据库 {database_name} 已存在,无需创建")


#将上面的版本结果存放到data中
# 执行查询数据库的操作
cursor.execute("SHOW DATABASES;")

#fetchone表示返回一行

#data = cursor.fetchone()
# fetchall 表示返回所有数据
#data = cursor.fetchall()
#print(f"执行结果:{data}


data = cursor.fetchall()
print("执行结果:")
for row in data:
    print(row[0])


#关闭数据库连接
db.close()

在这里插入图片描述

总结

以上就是关于centos7.9中使用docker安装mysql5.7的所有内容,有问题记得留言。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/652038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python怎么清除动点轨迹?

Python怎么清除动点轨迹&#xff1f; 引言 在数据科学和可视化的领域中&#xff0c;动点轨迹是很有用的工具。动点轨迹可以轻松地显示数据点的时间序列&#xff0c;这可以帮助分析者发现有关数据集的有用信息。然而&#xff0c;当轨迹过于密集和复杂时&#xff0c;这种可视化…

Spring Cloud Alibaba - Sentinel源码分析(一)

目录 一、Sentinel核心源码分析 1、Sentinel核心概念 1.1、Node之间的关系 2、Sentinel源码入口 2.0、Sentinel源码启动 2.1、SlotChain解析 2.2、NodeSelectorSlot解析 2.3、ClusterBuilderSlot解析 2.4、StatisticSlot解析 2.5、FlowSlot解析 2.6、DegradeSlot解析…

白鲸优化算法优化VMD参数,最小包络熵为适应度函数,提取最小包络熵对应的IMF分量,采集最佳IMF分量的9种时域指标,提取特征向量。以西储大学数据为例,附MATLAB代码

大家看到这篇文章&#xff0c;肯定会有疑问&#xff0c;难道本篇文章和上一篇文章不是一个意思嘛&#xff0c;这是来凑数的嘛……其实不然&#xff0c;如果各位读者仔细看&#xff0c;就会发现本篇文章和上一篇文章大有不同&#xff0c;这篇文章也是我一直以来想在上一篇文章基…

chatgpt赋能python:Python断言:如何断言等于两个值其中一个?

Python断言&#xff1a;如何断言等于两个值其中一个&#xff1f; Python是一种广泛使用的编程语言&#xff0c;而断言是它的一个重要功能。在编程中&#xff0c;我们可以使用断言来验证代码是否按照预期工作。但是&#xff0c;在某些情况下&#xff0c;我们可能想要断言两个值…

快速上手kettle(四)壶中可以倒出些啥?

快速上手kettle&#xff08;四&#xff09;壶中可以倒出些啥 前言一 、kettle 这壶里能倒出啥&#xff1f;二 、Access输出2.1 Access输出设置2.2 启动转换&#xff0c;查看输出 三 、Excel输出3.1 选择excel扩展名3.2 1 将表中数据分别写入到excel中 四、JSON output4.1 JSON …

常见骨干网络介绍

骨干网络 骨干网络&#xff08;backbone network&#xff09;顾名思义&#xff0c;是深度学习中最核心的网络组成。本文按时间顺序&#xff0c;简要介绍几种影响重大的backbone设计思路&#xff0c;我们或许可以从窥探前人的设计思路中获得启发和灵感。 1.1 AlexNet, 2012 这…

10倍|中科院再传好消息:比英伟达还快,“新技术”实现弯道超车

中科院再传好消息&#xff1a;在光芯片上有了重大突破&#xff0c;李明-祝宁华团队研制出了一款超高集成度光学卷积处理器。 这种方案具有高算力密度、超高的线性扩展性&#xff01; 基于这种技术的&#xff0c;光芯片的性能将再次提升&#xff0c;光芯片是用于AI,如果能变成现…

每日算法(第二十四期)

先来回顾一下上期的问题及答案&#xff1a; 2023年6月15日 「电话号码的字母组合」&#xff08;Letter Combinations of a Phone Number&#xff09;。以下是题目的描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。给出数字到字母的…

记录--前端如何优雅导出多表头xlsx

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言 xlsx导出是比较前后端开发过程中都比较常见的一个功能。但传统的二维表格可能很难能满足我们对业务的需求&#xff0c;因为当数据的维度和层次比较多时,二维表格很难以清晰和压缩的方式展现所有的…

macOS Ventura 13.5beta3(22G5048d)发布

系统介绍 黑果魏叔 6 月 16 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 3 更新&#xff08;内部版本号&#xff1a;22G5048d&#xff09;&#xff0c;本次更新距离上次发布隔了 15 天。 macOS Ventura 带来了台前调度、连续互通相机、Fa…

【Axure 教程】中继器(进阶篇)

一、修改、删除指定行 首先我们还是在 Axure 页面中拖入一个【中继器】&#xff0c;并双击打开&#xff0c;在默认的【矩形】后面加上【修改】和【删除】按钮&#xff1a; 然后我们给修改按钮添加【中继器事件】&#xff0c;选择【更新行】&#xff1a; 可以看到&#xff0c;由…

Axure RP 9 基础教程 元件基础3

11、组合元件 Axure中可以将多个元件组合起来&#xff0c;组合可以被命名&#xff0c;也可以被当成一个元件来进行交互&#xff0c;调整位置和大小等。选中多个元件&#xff0c;在顶部菜单中点击组合图标即可。选中一个组合&#xff0c;点击取消组合&#xff0c;可以就地解散。…

多传感器融合分类及对比

1.多传感器融合的体系结构 在多传感器融合中&#xff0c;按照对原始数据处理方法的不同&#xff0c;多传感器融合系统的体系结构可以分为三种&#xff1a;集中式&#xff0c;分布式和混合式(混合式又分为有反馈结构和无反馈结构)。 集中式融合&#xff1a;将各传感器获得的原始…

软件设计的核心方法及实例解析

李连杰电影版《倚天屠龙记》里有个经典的名场面&#xff0c;祖师爷爷张三丰花了三分钟教张无忌太极拳&#xff0c;张无忌学成打败了对手。三丰爷爷的教学思路是这样的&#xff1a;爷爷演示太极拳让张无忌跟着练&#xff0c;边练边问张无忌记住了多少&#xff0c;等张无忌把所有…

网络系统安全——MS15_034漏洞利用与安全加固

Kali 192.168.124.162 Windows server 2008 192.168.124.169 检查2008服务器的IIS网站是否正常&#xff0c;进入2008服务器&#xff0c;使用ie浏览器访问本机地址 切换到kali&#xff0c;使用命令ping来测试他们的连通性 然后使用使用命令curl测试&#xff0c;测试&#x…

FTP协议,带你了解FTP协议

目录 一、FTP的概述 1.FTP的理念 2.FTP数据连接模式 3.连接模式分类 4.主动和被动模式的工作原理 二、配置FTP服务 1、配置匿名用户FTP服务 1. 1安装FTP服务器软件 1.2 配置FTP服务器 1.3 重启FTP服务器 1.4 测试FTP服务器 2.关闭防火墙安装vsftpd软件包 3.开启FTP…

单片机中移植lua解释器

一、基本开发环境 开发环境基于野火STM32开发板。 前测试的 Lua 解释器版本为 5.4.2。 官网下载lua资源包&#xff0c;下载地址如下&#xff1a; https://www.lua.org/ https://github.com/rjpcomputing/luaforwindows/releases lua: Lua 国内镜像 (gitee.com)‍ 二、移植Lua解…

AIGC数据库工具-阿里开源Chat2DB

前言 今天无意间发现了一个AIGC数据库工具&#xff0c;chat2DB&#xff0c;重点&#xff01;&#xff01;&#xff01;阿里开源&#xff0c;其设计产品的思想给了我很多灵感&#xff0c;故记录一下&#xff0c;并分享给大家。 概述&#xff1a; Chat2DB 是一款有开源免费的多…

驱动开发:内核RIP劫持实现DLL注入

本章将探索内核级DLL模块注入实现原理&#xff0c;DLL模块注入在应用层中通常会使用CreateRemoteThread直接开启远程线程执行即可&#xff0c;驱动级别的注入有多种实现原理&#xff0c;而其中最简单的一种实现方式则是通过劫持EIP的方式实现&#xff0c;其实现原理可总结为&am…

【C++】入门基础知识详解(二)

目录 一、内联函数 1、概念 2、特性 3、内联函数与宏的优缺点 二、auto关键字(C11) 1、auto 简介 2、auto的使用细则 2.1 auto与指针和引用结合起来使用 2.2 在同一行定义多个变量 3、auto不能推导的场景 3.1 auto 不能作为函数的参数 3.2 auto 不能直接用来声明数组 三、…