首页 > 数据库 >Kubernetes创建MysQL

Kubernetes创建MysQL

时间:2023-09-27 14:37:38浏览次数:42  
标签:kubectl OK name Kubernetes 创建 MysQL nfs mysql ok

原文:https://www.cnblogs.com/wenkuna/p/16985512.html

创建数据存储PV、PVC

这里我们使用nfs作为storageclass,具体yaml文件如下:

yaml
# 创建PV
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql
spec:
  storageClassName: manual
  capacity:
    storage: 20Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /home/k8s/data/mysql  # 指定nfs的挂载点
    server: 20.20.20.200  # 指定nfs服务地址
---
#创建PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql
spec:
  storageClassName: manual
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

创建MySQL数据库,以及SVC

shell
➜  kubectl apply -f svc.yam
➜  kubectl apply -f mysql-app.yaml
yaml
# 创建MySQL数据库
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - image: mysql
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD # 生产环境中请使用 secret
              value: password
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mysql
              mountPath: /var/lib/mysql
      volumes:
        - name: mysql
          persistentVolumeClaim:
            claimName: mysql
---
# 创建SVC
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  selector:
    app: mysql
  ports:
    - port: 3306

直接应用以上yaml文件,查看pv、pvc、mysql、svc的创建

shell
➜  ~ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                       STORAGECLASS   REASON   AGE
mysql                                      20Gi       RWO            Retain           Bound    default/mysql               manual                  19h
pvc-bf18ae1f-f53f-44dc-bb46-78472bf8b9e5   8Gi        RWO            Delete           Bound    apisix/data-apisix-etcd-0   nfs-client              20h
➜  ~ kubectl get pvc
NAME      STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mysql     Bound    mysql    20Gi       RWO            manual         19h
nfs-pvc   Lost     nfs-pv   0                         manual         6d1h
➜  ~ kubectl get pods mysql-68c646d9c8-76z6f
NAME                     READY   STATUS    RESTARTS   AGE
mysql-68c646d9c8-76z6f   1/1     Running   0          19h
# 修改网络类型为NodePort,以便访问
➜  ~ kubectl get svc mysql
NAME    TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
mysql   NodePort   10.96.26.54   <none>        3306:31171/TCP   19h

测试数据导入

  • 测试数据获取入口:test_db

将获取到的测试数据导入到Pod中,并解压。

shell
kubectl cp test_db-1.0.7.tar.gz mysql-68c646d9c8-76z6f:/
tar -xvf test_db-1.0.7.tar.gz
cd test_db/

将测试数据导入到数据库中

sql
bash-4.4# mysql -u root -p < employees.sql
Enter password:
...

-- 验证是否导入成功
bash-4.4# mysql -u root -p < test_employees_md5.sql
Enter password:
...
employees   OK  ok
departments OK  ok
dept_manager    OK  ok
dept_emp    OK  ok
titles  OK  ok
salaries    OK  ok
computation_time
00:00:13
summary result
CRC OK
count   OK

测试数据库表结构

测试数据连接

  • 设置远程登录权限
sql
alter user 'root'@'%' identified with mysql_native_password by'root';
alter user 'root'@'%' identified by 'youpassword';
  • 方法二
sql
use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'youpassword';
--  一定要刷新生效
flush privileges; 

配置地址端口测试连接:

标签:kubectl,OK,name,Kubernetes,创建,MysQL,nfs,mysql,ok
From: https://www.cnblogs.com/bruce1992/p/17732619.html

相关文章

  • Dockerfile如何制作mysql镜像
    原文:https://blog.csdn.net/dwd22/article/details/130705146Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。1.编写dockerfile_mysql5.7在文件夹/root/dockerfile/mysql创建文件......
  • MySQL的SQL语句优化
    一、拿到SQL之后,用执行计划查看参数。explainselect1from`d_ec_hyx`.`t_advertiser_info`where1=1andf_corp_id=15930142andf_typein(1,4)andf_refund_status=1limit1 二、执行计划ID。1、id相同,执行顺序从上往下;2、id不同,如果是子查......
  • Mysql查询不区分大小写
    当使用mysql查询时,发现不区分大小写。经查,是以下问题utf8_general_ci --不区分大小写utf8_bin--区分大小写  解决方法一:修改排序规则为utf8_bin 解决方法二:在查询的字段前面加个binary ......
  • 数据库的三范式是什么?MySQL数据库引擎有哪些?InnoDB与MyISAM的区别
    一、数据库的三范式第一范式:列不可再分第二范式:主键约束,行可以唯一区分第三范式:外键约束,表的非主属性不能依赖于其它表的非主属性第二范式建立在第一范式上,第三范式建立在第一第二范式上。二、MySQL数据库引擎有哪些可以用如下命令查看mysql提供的所有引擎:mysql>showengines;MySq......
  • mysql 获取当前日期周几
    --方法一:使用WEEKDAY函数SELECTWEEKDAY(CURDATE());--返回0到6,分别代表星期日到星期六--方法二:使用DAYOFWEEK函数SELECTDAYOFWEEK(CURDATE());--返回1到7,分别代表星期日到星期六--方法三:使用DATE_FORMAT函数SELECTDATE_FORMAT(CURDATE(),'%w');......
  • 如何创建可引导的 macOS Sonoma 安装介质
    2023年9月26日(北京时间27日凌晨)macOSSonoma正式版现已发布。如何创建可引导的macOSSonoma安装介质如何创建可引导的macOS安装器|如何制作macOSUSB启动盘请访问原文链接:https://sysin.org/blog/macos-createinstallmedia/,查看最新版。原创作品,转载请保留出处......
  • 【Mysql主从复制】1主多从
    这里使用docker进行演示两台mysql主从搭建1:使用Docker启动俩个Mysql容器,配置挂载数据与配置文件传送门:https://www.cnblogs.com/wanghong1994/p/17731143.html创建完后应该就有俩个Mysql(或者你有两个服务器,启动了mysql并且配置完成):[root@VM-12-9-centos/]#dockerp......
  • MySQL进阶篇:第二章_二.二_索引结构
    2.2索引结构2.2.1概述MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种:索引结构描述B+Tree索引最常见的索引类型,大部分引擎都支持B+树索引Hash索引底层数据结构是用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范......
  • MySQL进阶篇:第二章_二.一_索引概述
    2.1索引概述2.1.1介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2.1.2演示表结构及其数据如下......
  • MySQL进阶篇:第一章_一.五_MySQL存储引擎选择
    MySQL存储引擎选择在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作......