我在Azure上使用SSL运行MariaDB PaaS,在AKS上运行phpMyAdmin。通过尝试连接,我得到了一条非常不清楚的消息:Cannot log in to the MySQL server
和mysqli::real_connect(): (HY000/2002): No such file or directory
在这一点上,ssl
不是问题所在。我已经尝试了同样的方法,但没有在数据库端强制实施ssl,并且配置了没有ssl设置的phpmyadmin。
我还成功地使用curl -v telnet://my-database-12345.mariadb.database.azure.com:3306
测试了phpmyadmin pod的连接性。
这是我如何尝试让phpmyadmin与azure mariadb一起工作:
apiVersion: v1
kind: Namespace
metadata:
name: pma
---
apiVersion: v1
kind: ConfigMap
metadata:
name: pma-cfg
namespace: pma
labels:
app: phpmyadmin
data:
config-user-inc: |
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'my-database-12345.mariadb.database.azure.com';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['ssl'] = true;
$cfg['Servers'][$i]['ssl_ca'] = 'ssl/BaltimoreCyberTrustRoot.crt.pem';
$cfg['Servers'][$i]['ssl_verify'] = false;
---
apiVersion: v1
kind: ConfigMap
metadata:
name: ssl-cert
namespace: oneup
labels:
app: phpmyadmin
data:
ssl-cert: |
-----BEGIN CERTIFICATE-----
# truncated BaltimoreCyberTrustRoot.crt
-----END CERTIFICATE-----
---
apiVersion: v1
kind: Service
metadata:
name: internal-pma
namespace: pma
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
loadBalancerIP: 10.xxx.xxx.xxx
ports:
- port: 80
targetPort: pma
selector:
app: pma
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: pma
namespace: pma
labels:
app: pma
spec:
replicas: 1
selector:
matchLabels:
app: pma
template:
metadata:
labels:
app: pma
spec:
containers:
- name: pma
image: phpmyadmin/phpmyadmin
ports:
- containerPort: 80
name: pma
volumeMounts:
- name: pma-cfg
mountPath: /etc/phpmyadmin/
- name: ssl-cert
mountPath: /etc/phpmyadmin/ssl/
volumes:
- name: pma-cfg
configMap:
name: pma-cfg
items:
- key: config-user-inc
path: config.user.inc.php
- name: ssl-cert
configMap:
name: ssl-cert
items:
- key: ssl-cert
path: BaltimoreCyberTrustRoot.crt.pem
非常感谢!
2条答案
按热度按时间fdx2calv1#
当为phpmyadmin挂载一个自定义配置而不使用任何环境变量时(如果使用ssl,这是必需的),映像不会生成默认的配置文件。
例如:如果您启动pod,如下所示:
将在/etc/phpmyadmin中生成
config.inc.php
文件通过挂载
config.user.inc.php
,将不会生成任何config.inc.php
。我所做的
正在从configMap中的
/var/www/html/config.sample.inc.php
复制内容,并对我的azure mariadb进行必要的更改:配置Map:
最后,将配置Map装载到部署:
也许它也会帮助其他人。
干杯干杯干杯
um6iljoc2#
您遇到的错误是一个已知问题,可以通过restarting MSSQL服务器或执行以下更改来解决:
您可以参考此SO thread以了解更多信息和故障排除