mysql 5.7报1055错误的解决方法

今天由mysql 5.6升级到5.7的时候,遇到一个group by的错误:
Expression #2 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘trade.create_time’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
原来,执行下面语句发现,默认的sql_mode修改了,变成:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,而5.6版默认是:NO_ENGINE_SUBSTITUTION

show VARIABLES like 'sql_mode';

没办法,需要去掉ONLY_FULL_GROUP_BY,则执行

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

mysql 从库升级为主库的步骤

1、进入主库,设置只读;

SET GLOBAL read_only=1;

2、进入从库,等同步完成后,暂停同步,并设置读写;

stop slave;
SET GLOBAL read_only=0;
reset slave all;
-- RESET SLAVE ALL是清除从库的同步复制信息、包括连接信息和二进制文件名、位置
-- 从库上执行这个命令后,使用show slave status将不会有输出。

3、修改配置文件连接到新的主库上。

linux vps 服务器增加 swap 分区

1、决定增加 swap 分区,首先在空间上创建一个分区,如/mnt/swap,例子增加1G
# dd if=/dev/zero of=/mnt/swap bs=1024 count=1000000

# dd if=/dev/zero of=/mnt/swap bs=1M count=1024

两条命令不同在于输入输出块大小

2、将文件设为swap
# mkswap /mnt/swap

3、激活swap
# swapon /mnt/swap

4、增加开机自动载,在/etc/fstab文件增加以下一行
/mnt/swap swap swap defaults 0 0

gentoo 升级安装 php7

最近php7出正式版,号称比php5.6快2倍,那么在gentoo下如何emerge呢,请参考:

# echo 'PHP_INI_VERSION="production"' >> /etc/portage/make.conf      // 生产环境使用production,开发环境使用development
# emerge --sync        // 更新
# echo "=dev-lang/php-7.0.0 ~amd64" >> /etc/portage/package.accept_keywords
# emerge php:7.0       // 安装指定版本php

gentoo 手动安装php扩展出错的解决办法

默认安装时,提示错误信息

libtool: Version mismatch error.  This is libtool 2.2.6b, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b
libtool: and run autoconf again.
make: *** [imagick_file.lo] Erreur 63

解决方法:

# phpize
# aclocal
# libtoolize --force
# autoheader
# autoconf
# ./configure
# make && make install

PHP安装imagick支持png格式

php安装pecl-imagick扩展后,发现并不支持使用png格式图片,
在服务器使用如下命令:
# identify -list format | grep -i png
若无结果,表明imagemagick安装时并没有使用png编译,则需要重新安装imagemagick
gentoo linux比较简单,编辑
# vim /etc/portage/package.use/imagemagick
写入media-gfx/imagemagick -openmp truetype png
emerge media-gfx/imagemagick 即可

mysql binlog日志自动清理及手动删除

当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间。
有四种解决方法:
1.关闭mysql主从,关闭binlog;
2.开启mysql主从,设置expire_logs_days;
3.手动清除binlog文件:
> PURGE {MASTER | BINARY} LOGS TO ‘log_name’;
> PURGE {MASTER | BINARY} LOGS BEFORE ‘date’;
如:
> PURGE MASTER LOGS TO ‘MySQL-bin.000001’;
> PURGE MASTER LOGS BEFORE ‘2015-11-21 00:00:00’;
4、也可以重置master,删除所有binlog文件:
> RESET MASTER;

Gentoo 升级系统的标准步骤

#emerge --sync      //升级整个portage目录
#emerge portage     //如果不是最新的portage,需要按提示执行此操作
#emerge python     //如果不是最新的python,需要按提示执行此操作
#python-updater     //执行完emerge python后执行此操作,执行前使用 eselect python list 查看及切换 python版本

#emerge -avuDN world      //按照 /var/lib/portage/world 文件下的包,重新构建整个系统
 参数说明:  --ask (-a)  控制Portage显示它要更新的软件包列表,并让您决定是否继续更新
                --verbose (-v) 在屏幕上输出完整的文件列表
                --update (-u) 更新包的最佳版本
                --deep (-D)  更新系统中的每个软件包
                --newuse (-N) USE标记变更后,要使Portage检查USE标记的变动是否导致
                            需要安装新的软件包或者将现有的包重新编译

#emerge -av --depclean     //清除不需要(孤立)的软件包

#revdep-rebuild     //gentoolkit包里面的一个软件,用来检查系统的依赖关系是否都满足,
                            自动安装没有满足关系的包

#dispatch-conf     //更新系统的配置文件 也可以使用etc-update

#emerge -e world     //本地重新编译整个系统,USE标记变化不大时不需执行
 参数说明: --emptytree (-e)  

唯一身份访问者(独立访客)与访问次数的区别

在进行网站分析前,对网站分析的基本度量的了解是非常必要的,这样才会深入理解网站分析,否则就会不知所云。

定义:

1、唯一身份访问者(Unique Visitors):在指定时段内(默认时长为一天0-24点)不重复(仅计数一次)的访问者人数,唯一身份访问者人数用 Cookie 确定,也称为独立访客。

2、访问次数(Visits):某个时间段内(默认时长为30分钟),您网站的所有访问者发起的具体会话次数,超过默认时长则算第二次访问。

举例说明:

访问次数就相当于一个展览会的访问人次,某个参观者出入展馆10次的话,这10次都被记入访问次数中,相当于网络中的PV值。

唯一身份访问者则相当于带身份证参观展览会的访问人数,每一个出示身份证参观展览的人,无论出入几次,都只计作一次访问。这里所说的“身份证”,在网络上就是能辨别访客唯一身份的Cookie。

技术依据:

网站统计工具对于网站唯一身份访问者的计算,主要是依据浏览器的Cookie来判定的。在浏览器Cookie数据不清除的情况下,即使用多个IP切换来登录一个网站,也会只记为一个唯一身份访问者。唯一身份访问者很接近但并不完全就是真实独立的人。

唯一身份访问者与访问次数这两个指标会受浏览器设置的影响,如有些将浏览器设置成禁用Cookie或是禁用第三方Cookie的情况。目前大多数的网站分析工具都使用第一方Cookie来尽量降低Cookie被禁用的情况。第一方Cookie被禁用比率大概在2%至5%之间,第三方Cookie被禁用的比率相对而言就要高很多,大概在10%至30%之间。百度统计则是使用第一方和第三方Cookie,则Google Analytics使用第一方Cookie,所以Google Analytics有某些情况下要比百度统计精准。可参考第一方Cookie与第三方Cookie的区别