跳到主要内容
版本:v3&v6

开放只读账号外部访问数据库

操作步骤

进入操作机

ones-ai-k8s.sh

进入 mysql 创建只读账号

#查询root帐号的密码
cat config/private.yaml | grep mysqlRootPassword
#mysqlRootPassword: KSiGLzpG5B6zHNkB

kubectl -n ones exec -it mysql-cluster-mysql-0 bash

#连接mysql 密码用上面查到的替换
mysql -uroot -p<password>
# mysql -uroot -pKSiGLzpG5B6zHNkB

CREATE USER '<user_name>'@'%' IDENTIFIED BY '<user_password>';
#例如: CREATE USER 'onesreadaccount'@'%' IDENTIFIED BY 'ones123456';

#根据之前创建的用户名替换<user_name>
GRANT SELECT ON *.* TO '<user_name>'@'%';
# 例如: GRANT SELECT ON *.* TO 'onesreadaccount'@'%';

flush privileges;

#查看权限是否赋予成功
#根据之前创建的用户名替换<user_name>
show grants for <user_name>;
#例如: show grants for onesreadaccount;

#mysql> show grants for onesreadaccount;
#+----------------------------------------------+
#| Grants for onesreadaccount@% |
#+----------------------------------------------+
#| GRANT SELECT ON *.* TO 'onesreadaccount'@'%' |
#+----------------------------------------------+
#1 row in set (0.00 sec)

#如果展示的数据中只有GRANT SELECT ON *.* TO 'onesreadaccount'@'%'则说明权限赋予成功。

创建的帐号即为只读帐号。

创建外部访问网络服务

创建一个 export-mysql-service.yaml 文件,内容如下:

apiVersion: v1
kind: Service
metadata:
name: export-mysql-service
namespace: ones
spec:
selector:
statefulset.kubernetes.io/pod-name: mysql-cluster-mysql-0
ports:
- protocol: TCP
port: 3306
targetPort: 3306
nodePort: 30015
type: NodePort

其中 30015 端口代表你外部访问数据库的端口,可以自行修改。

执行命令创建服务:

kubectl apply -f export-mysql-service.yaml

验证

使用如下命令,或者数据库工具能够连接数据库即可。

 mysql -h10.0.0.203 -uonesreadaccount -P30015 -pones123456