ThinkPHP5 MySQL too many connections

ThinkPHP5在使用中,特别是执行耗时比较长的任务时,可能会出现`too many connections`的情况,就是连接数过多。

一方面,可能是程序上的问题,另一方面,这是数据库配置上的问题。

解决办法,修改 `application/database.php`, `params`参数默认为

MySQL 5.6升级到5.7注意点

MySQL 5.6升级到5.7注意点。

千万记得备份!

1. 安装方式出现变化,5.7安装完后需要先`初始化`再开启`mysqld`服务,且初始化完成后修改`root`密码的方式变了。

2. 一些变量不再支持,如 `thread_concurrency`,如果你配置了这个变量,删除它,不然不能开启`mysqld`服务。

3. `sql_mode`默认是`NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`,即严格模式。

MySQL修改用户密码

MySQL修改用户密码。

#### 方法1
适用于版本`<=5.6`的MySQL及已经重置过密码的MySQL5.7。 use mysql; update user set password=password('123') where user='root' and host='localhost'; flush privileges;

MySQL数据库优化总结

MySQL数据库优化总结。

1. 尽量将多次查询放到一条SQL语句里执行,避免循环中的SQL查询,特别是数据库和网站分离时。

2. 对于left join,如果只是为了查询right表的某个字段,可选择使用配置文件来代替left join,将right的字段放入一个数组中,把数组序列化到一个文件中,需要用的时候反序列化,根据key查找value。

3. 使用数据库的内置函数

4. 只select用到的字段,而非select *

PHP站点被攻击时处理方案

攻击模式处理方案。

方案(阿里云)

1. MySQL RDS添加只读实例,开启读写分离,平时可预留低配实例备用
2. MySQL数据库配置 wait_timeout和 interactive_timeout为 5~10,以便超时自动释放连接,避免连接数过多的问题
3. WAF CC自定义规则,设置单ip规定时长的访问限制及封禁时长,可设置2~3个阶段
4. WAF精准控制规,主要是黑白名单

豫ICP备19001387号-1