1.下载mysql镜像
[root@master mysql]#docker pull mysql
2.将mysql镜像上传至ICP仓库
[root@master stable]# docker tag mysql:latest mycluster.icp:8500/default/mysql:v1.0
[root@master stable]# docker push mycluster.icp:8500/default/mysql:v1.0
3.创建pvc和deployment
[root@master mysql]# kubectl create -f mysql_pvc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
type: NodePort
ports:
- port: 3306
nodePort: 32307
targetPort: 3306
selector:
app: mysql
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mycluster.icp:8500/default/mysql:v1.0
name: mysql
env:
# Use secret in real usage
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
[root@master mysql]# kubectl create -f mysql_deployment.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
name: mysql-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
4.查看创建的deployment、service、pvc
[root@master mysql]# kubectl get pods --namespace=default
[root@master mysql]# kubectl get svc
[root@master mysql]# kubectl get pvc
5.登录mysql
[root@master data]# kubectl run -it --rm --image=mycluster.icp:8500/default/mysql:v1.0 --restart=Never mysql-client -- mysql -h mysql -ppassword
可以看到mysql版本是8.0.12
mysql> select version();
6.创建testdb库
mysql> create database testdb;
7.使用SQLyong登录mysql
在登录时候一直抛错,输入访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
此问题有两种方法,一种是更新 Navicat 驱动来解决此问题,另一种是将 MySQL 用户登录的加密规则修改为 mysql_native_password,第一种方法我试过了没有起作用,我这里采用第二种方法。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> FLUSH PRIVILEGES;
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论