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';
查看导入数据成功。