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

首先在MySQL中输入 show variables like ‘%secure%’;查看 secure-file-priv 当前的值是什么

 

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

 

 

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

 重启mysql服务

 执行sql命令导入数据

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


 

 查看导入数据成功。

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值