hbhe0316
作者hbhe03162019-01-15 10:04
数据库管理员, IBM

ICP 部署mysql8

字数 2639阅读 1280评论 0赞 2

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
x0qx5780xld

x0qx5780xld

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
tc61xtz8u4

tc61xtz8u4

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();
a4t4vgq572s

a4t4vgq572s

6.创建testdb库
mysql> create database testdb;
kvjf4zj6n9

kvjf4zj6n9

说明数据库工作正常

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;
euo9i97rcr

euo9i97rcr

完成后可以通过可视化工具查看
xthn3umn1l

xthn3umn1l

8.在ICP控制台查看
【工作负载】->【部署】查看创建的Mysql信息
mmbwsuyjnvn

mmbwsuyjnvn

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

X社区推广