Kubernetes部署Ingress+nginx+php+mysql问题集
最近在学习Kubernetes,用它部署了Ingress,并用Ingress负载nginx,nginx转发到php服务里的php-fpm,php程序连接MySQL主从。
折腾了好几天,遇到不少问题,好在最后都解决了,列一下做个笔记。
Home of Little Jelly
最近在学习Kubernetes,用它部署了Ingress,并用Ingress负载nginx,nginx转发到php服务里的php-fpm,php程序连接MySQL主从。
折腾了好几天,遇到不少问题,好在最后都解决了,列一下做个笔记。
最近在学习Kubenetes,把Nginx,PHP,MySQL都以集群的方式部署到了Kubenetes下。
部署完成之后,找了个FastAdmin的项目来测试下有没有什么问题。
其它问题就不说了,主要是中文乱码的问题。
本篇内容是在Kubernetes部署MySQL主从同步并读写分离。
由于笔者在Kubernetes上是新手,刚刚入门,所以参考了网上其它人写的文章来完成这一过程。
参考教程链接
由于历史原因,MySQL是使用的最多,也是首选的数据库,但当数据量达到千万级别,并有在线分析的需求时,读大于写,MySQL的响应就会越来越慢,直接检索MySQL不但不能得到快速的响应,反而会影响写入性能。
此时,将MySQL数据同步到数据仓库中,从数据仓库中来检索数据就变得非常有必要了。
ClickHouse基本概念和使用注意事项。
首先解释下ClickHouse是什么?ClickHouse是俄国人搞出来的一个列式数据仓库,以应对实时的数据查询分析,经常被拿来和ElasticSearch作比较。
基本概念
1. 集群
2. 分片
3. 数据库
4. 表
ElasticSearch Mongo MySQL文档存储及检索对比。
测试环境:
1. 硬件配置:2核2G内存
2. 部署方式:Docker
3. CentOS 8.4
4. PHP 7.4.23
MySQL全文检索解析器ngram自版本5.7.6可用。
ngram_token_size变量
`ngram_token_size`默认为2,表示按最小两个字来分词,比如”十六”,单个词如”六”是检索不出来的,需要将`ngram_token_size`设置为1。
MySQL8引入了一些新特性,也有一些改动,升级的时候要注意下。
Authentication 身份认证
身份认证时默认使用的是`caching_sha2_password`,而之前的版本是`mysql_native_password`,老的程序不兼容,比如MySQL管理工具`Sequel Pro`等。
PHP要使用XdevAPI扩展连接MySQL8,首先要安装MySQL8,而且需要为PHP安装配置`mysql_xdevapi`扩展,见之前的教程[PHP8安装MySQL xdevapi扩展](https://www.pimspeak.com/php8-mysql-xdevapi-extension.html)。
装好之后就可以连接了。
示例代码
要在PHP中使用MySQL8的文档存储Document Store,需要配置`mysql_xdevapi`扩展。配置过程比较复杂,依赖颇多,详细步骤如下。
环境:CentOS8 + PHP8 + MySQL8
首先安装gcc