K8S系列文章之 部署MySQL数据库

这篇具有很好参考价值的文章主要介绍了K8S系列文章之 部署MySQL数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 编写 mysql.yaml文件

apiVersion: v1
kind: Namespace
metadata:
  name: devops   # Namespace 的名称
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: devops-mysql   # deployment控制器名称
  namespace: devops
spec:
  replicas: 1
  revisionHistoryLimit: 5
  strategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: devops-mysql
  template:
    metadata:
      labels:
        app: devops-mysql
    spec:
      volumes:
        - name: devops-mysql
          nfs:
            server: xx.xx.xx.xx  # 修改为挂载存储的服务器ip
            path: /root/data/nfs/mysql/devops   # 修改为存储服务器的存储挂载路径
      containers:
        - name: devops-mysql
          image: mysql:5.7
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: xxxxxxxx     # 设置MySQL数据库登录密码
          imagePullPolicy: Always
          ports:
            - containerPort: 3306
          volumeMounts:
            - name: devops-mysql
              mountPath: /var/lib/mysql
---
apiVersion: v1
kind: Service
metadata:
  name: devops-mysql    # 数据库服务的名称
  namespace: devops
spec:
  ports:
    - port: 3306
      protocol: TCP
      targetPort: 3306
      nodePort: 30001    # 对外访问的端口
  selector:
    app: devops-mysql
  type: NodePort
  sessionAffinity: ClientIP   

2 执行如下命令创建

kubectl apply -f mysql.yaml

3 通过如下命令查看创建结果

使用如下命令查看

kubectl get pod -n devops | grep mysql

如:

[root@master ~]# kubectl get pod -n devops | grep mysql
devops-mysql-59b68c47d4-ttbng               1/1     Running   0          23h
[root@master ~]#

4 命令行进入Pod并登录mysql

[root@master ~]# kubectl exec -it devops-mysql-59b68c47d4-ttbng bash -n devops
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
root@devops-mysql-59b68c47d4-ttbng:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql>
至此,数据库已经安装完成,然后即可通过ip+端口,这里是30001,进行数据库链接。

 常用MySQL指令:

Ⅰ、 显示数据库列表。

show databases;

缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

Ⅱ、 显示库中的数据表:

use 库名;
tables;

Ⅲ、 显示数据表的结构:

describe 表名;

Ⅳ、 建库与删库:

create database 库名(character set utf8);
drop database 库名;

Ⅴ、 建表与删表:

use 库名;
create table 表名(字段列表);
drop table 表名;

Ⅵ、 清空表中记录:

delete from 表名;

Ⅶ、 显示表中的记录:

select * from 表名;

Ⅷ、 往表中加入记录:

insert into 表名 values (字段列表);

Ⅹ、更新表中数据

mysql>update 表名 set 字段="值" where 子句 order by 子句 limit 子句
WHERE 子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。
ORDER BY 子句:可选项。用于限定表中的行被修改的次序。
LIMIT 子句:可选项。用于限定被修改的行数。

导出和导入数据

Ⅰ. 导出数据:

mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文本文件
例:mysqldump -u root -p用户密码 --databases dbname > mysql.dbname

Ⅱ. 导入数据:

mysqlimport -u root -p用户密码 < mysql.dbname。

Ⅲ. 将文本数据导入数据库:

文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

 创建库与表

创建test数据库并建立user表(字段包含:id 、username、grade)

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL,
  `username` varchar(50) COLLATE utf8_bin NOT NULL,
  `grade` int(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

编写规定格式的数据文本xs1.txt 

2020|hanxin|68
2023|han23n|68

k8s部署mysql,数据库,kubernetes,mysql首先在MySQL中输入 show variables like ‘%secure%’;查看 secure-file-priv 当前的值是什么

 k8s部署mysql,数据库,kubernetes,mysql

找到my.ini 文件,下面需要修改参数

k8s部署mysql,数据库,kubernetes,mysql 

 

删除安全路径检查,将secure-file-priv=""

k8s部署mysql,数据库,kubernetes,mysql 重启mysql服务k8s部署mysql,数据库,kubernetes,mysql

 执行sql命令导入数据

mysql -uroot -p
use test;
load data infile 'E:/xs/xs1.txt' into table user fields terminated by'|' lines terminated by'\n';


 

k8s部署mysql,数据库,kubernetes,mysql

 查看导入数据成功。

 k8s部署mysql,数据库,kubernetes,mysql文章来源地址https://www.toymoban.com/news/detail-678725.html

到了这里,关于K8S系列文章之 部署MySQL数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S系列文章之 Kind 部署K8S的 服务发布

    下载  https://github.com/kubernetes-sigs/kind/releases/download/0.17.0/kind-linux-amd64 执行以下命令:  之前需要先在本地主机安装好docker  kubectl是Kubernetes的命令行工具,可以让我们通过命令访问、操作、管理Kubernetes集群。brew安装方法如下 安装完毕后,查看kubectl版本信息,确认安装成功

    2024年02月14日
    浏览(36)
  • 3、数据库:Oracle部署 - 系统部署系列文章

           Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程。 一、 数据库下载; Oracle最新版目前在官网是19c,从下面这个链接进去下载便可。        https://www.oracle.com/cn/database/technologies/oracle

    2024年02月07日
    浏览(39)
  • 没错,数据库确实应该放入 K8s 里!

    昨天冯老板发了一篇文章探讨了为什么将数据库放入 K8S 中不是一个明智的选择。 如果是四年前有人质疑容器化数据库我觉得还可以 battle 一下,都 2023 年了还有人不能认清这个大势,我就有必要来谈谈我的看法了。 我从 K8s 0.9 版本时就开始做这件事,当时确实略早,CSI 都不

    2024年02月05日
    浏览(55)
  • k8s系列文章一:安装指南

            当使用的Docker容器的数量变得越来越多时,对于端口、Docker容器的管理变得越来越麻烦,这时为方便管理容器,资源管理器随之出现,其中最出名的就是Kubernetes,简称K8s(因K与S间有8个字母),可以说k8s是docker的升级版,可用于docker集群配置管理微服务,同样的集群

    2024年02月05日
    浏览(41)
  • 生产问题(十四)K8S抢占CPU导致数据库链接池打爆

            线上一天出现了两次数据库连接失败的大量报错,一开始以为是数据库的问题,但是想了想如果是数据库的问题,应该会有大量的应用问题         具体分析之后,发现其实是容器cpu出现了Throttled,导致大量线程阻塞         既然出现了报错,又没有发布,先

    2024年01月25日
    浏览(92)
  • 数据库系列文章 之 MySQL分表的三种方法

    先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 根据个人经验,mysql执行一个sql的过程如下: 1,接收到sql;2,把sql放到排队队列中

    2024年02月16日
    浏览(40)
  • 使用 KubeBlocks 为 K8s 提供稳如老狗的数据库服务

    原文链接:https://forum.laf.run/d/994 大家好!今天这篇文章主要向大家介绍 Sealos 的数据库服务。在 Sealos 上数据库后端服务由 KubeBlocks 提供,为用户的数据库应用保驾护航。无论你是在公有云还是本地环境中使用,Sealos 都能为你管理关系数据库、NoSQL、向量数据库和流数据库等

    2024年02月12日
    浏览(53)
  • K8S系列文章之 内外网如何互相访问

    K8S中网络这块主要考虑 如何访问外部网络以及外部如何访问内部网络  需求 k8s集群内的pod需要访问mysql,由于mysql的性质,不适合部署在k8s集群内,故k8s集群内的应用需要链接mysql时,需要配置链接外网的mysql,本次测试 k8s集群ip段为 192.168.23.xx 。以下提供两种方式, Endpoint 和

    2024年02月14日
    浏览(42)
  • K8S系列文章 之 容器存储基础 Volume

    Volume是容器数据卷。我们经常创建删除一些容器,但有时候需要保留容器中的一些数据,这时候就用到了Volume。它也是容器之间数据共享的技术,可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人电脑上。 第一种挂载volume的方式

    2024年02月13日
    浏览(31)
  • K8S系列文章之 开源的堡垒机 jumpserver

    一、jumpserver作为一款开源的堡垒机,不管是企业还是个人,我觉得都是比较合适的,而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装,直接docker不是就行 目前没有看到3版本的,3版本的功能更加强大,可以官网学习一下。 2、使用 资产添加不用细讲,主要

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包