Solo  当前访客:3 登录 注册

喧哗博客-http://blog.xuahua.com

繁华过后的沉寂--技术经验分享
浏览次数: 95,037    文章总数: 91    评论总数: 3
存档:
2016 年 05 月 (5)

一个查询SQL的优化-mysql

1,查询MYSQL

select max(createtime)
from t_mem_login_log
where id<(
SELECT MAX(id)
FROM t_mem_login_log
WHERE userid= 74
and flag= 1)
and userid= 74
and flag= 1

查询目的,查询当前用户当前登录的前一条最大的创建时间。比如

1 2 3 4 5 分别代表五条记录,5 为最大即最后一条插入数据,此时,需要取出比5小的最大记录4 。

 优化后的sql改写为

SELECT createtime
FROM `t_mem_login_log`
where userid= 74
and flag= 1
order by createtime desc
limit 1,1;

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

环境:mysql 数据库

字符集 utf8

建表sql

CREATE TABLE products (
    productID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    title VARCHAR(104) NOT NULL,
    picturePath VARCHAR(104) NULL,
    pictureThumb VARCHAR(104) NULL,
    creationDate DATE NOT NULL,
    closeDate DATE NULL,
    deleteDate DATE NULL,
    varPath VARCHAR(104) NULL,
    isPublic TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
    PRIMARY KEY (productID)
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_unicode_ci;

现象,运行二表关联查询,报出异常错误如下

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

 

经过网上查找,解决方法。

ALTER TABLE products CHARACTER SET utf8 COLLATE utf8_general_ci;

以此为记 。。。

 

centos+php5.6+pdo扩展

centos+php5.6+pdo扩展

 

链接 : http://blog.xuahua.com/articles/2016/05/09/1462762206356.html

假设php目录为/usr/local/php
mysql目录为/usr/local/mysql
1. 进入PHP源码包ext/pdo目录


cd ext/pdo

2. 执行/usr/local/php/bin/phpize[假设PHP的安装目录为/usr/local/php]


/usr/local/php/bin/phpize

3. 配置扩展pdo


./configure --with-php-config=/usr/local/php/bin/php-config --enable-pdo=shared

4. 编译 && 安装pdo


make && make install

成功则出现
Installing shared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
Installing header files: /usr/local/php//include/php/
Installing PDO headers: /usr/local/php//include/php/ext/pdo/
说明在/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo.so文件

5. 在PHP源码包中进入pdo_mysql


cd ext/pdo_mysql

6. /usr/local/php/bin/phpize

/usr/local/php/bin/phpize

7. 配置pdo_mysql[假设Mysql的安装目录为/usr/local/mysql]

1
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
8. 编译 安装pdo_mysql

make && make install

centos+编译安装+php5.6+php5.6源码环境 有更新!

一,安装前提

 

因为本人做java开发,对php环境配置不太懂,虽然网上也有yum 安装方式,但其中的配置关系完全不知。

而且因为本身已经在安装好的mysql数据库基础上再装php环境,会导致安装二套mysql,而出现问题(本人折腾快一天时间的体会)。

所以还是使用源码编译安装,过程需要花费不少,而且需要安装不少的插件。

 

二,安装php5.6

 链接 http://blog.xuahua.com/articles/2016/05/09/1462762124848.html 

2.1 安装php前的准备工作

   php 安装目录指定 /usr/local/php

  httpd 安装目录  /usr/local/httpd

  mysql 安装目录 /data/mysql

  mysql.sock 目录是通过mysql配置中指定生成在 /tmp/mysql.sock

 

2.2 源码下载 

源码下载目录 /data/soft
wget http://cn2.php.net/distributions/php-5.6.21.tar.gz

其他需要的插件下载,网上虽然也有,但是有些链接已经失效,下不到,我也是折腾好久才找到。
 
 
 

3,安装编译工具及库文件(使用yum命令安装)

yum install-y apr*autoconf automake bison bzip2 bzip2*cloog-ppl compat*cpp
yum install-y curl curl-devel fontconfig fontconfig-devel freetype freetype*
yum install-y freetype-devel gcc gcc-c++gtk+-devel gd gettext gettext-devel
yum install-y glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel
yum install-y libcom_err-devel libpng libpng*libpng-devel libjpeg*libsepol-devel
yum install-y libselinux-devel libstdc++-devel libtool*libgomp libxml2 libxml2-devel libXpm*libX*
yum install-y libtiff libtiff*makempfr ncurses*ntp openssl nasm nasm*
yum install-y openssl-devel patchpcre-devel perl php-common php-gd
yum install-y policycoreutils ppl telnet t1lib t1lib*wget zlib-devel
 

三. 开始安装

1、安装yasm

1
2
3
4
5
6
7
8
9
cd/home
 
tar zxvf yasm-1.3.0.tar.gz
 
cdyasm-1.3.0
 
./configure
 
make&&makeinstall

 

2、安装libmcrypt

1
2
3
4
5
6
7
8
9
cd/home
 
tar zxvf libmcrypt-2.5.8.tar.gz
 
cdlibmcrypt-2.5.8
 
./configure
 
make&&makeinstall

 

3、安装libvpx

1
2
3
4
5
6
7
8
9
10
cd/home
 
xz-dlibvpx-v1.3.0.tar.xz
tar-xvf libvpx-v1.3.0.tar
 
cdlibvpx-v1.3.0
 
./configure--prefix=/usr/local/libvpx--enable-shared--enable-vp9
 
make&&makeinstall

 

4、安装tiff

1
2
3
4
5
6
7
8
9
cd/home
 
tar zxvf tiff-4.0.3.tar.gz
 
cdtiff-4.0.3
 
./configure--prefix=/usr/local/tiff--enable-shared
 
make&&makeinstall

 

5、安装libpng

1
2
3
4
5
6
7
8
9
10
11
cd/home
 
xz-dlibpng-1.6.16.tar.xz
 
tar-xvf libpng-1.6.16.tar
 
cdlibpng-1.6.16
 
./configure--prefix=/usr/local/libpng--enable-shared
 
make&&makeinstall

 

6、安装freetype

1
2
3
4
5
6
7
8
9
cd/home
 
tar zxvf freetype-2.5.4.tar.gz
 
cdfreetype-2.5.4
 
./configure--prefix=/usr/local/freetype--enable-shared--without-png
 
make&&makeinstall

 

7、安装jpeg

1
2
3
4
5
6
7
8
9
cd/home
 
tar zxvf jpegsrc.v9a.tar.gz
 
cdjpeg-9a
 
./configure--prefix=/usr/local/jpeg--enable-shared
 
make&&makeinstall

 

8、安装libgd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd/home
 
tar zxvf libgd-2.1.0.tar.gz
 
cdlibgd-2.1.0
 
./configure\
--prefix=/usr/local/libgd\
--enable-shared\
--with-jpeg=/usr/local/jpeg\
--with-png=/usr/local/libpng\
--with-freetype=/usr/local/freetype\
--with-fontconfig=/usr/local/freetype\
--with-xpm=/usr/\
--with-tiff=/usr/local/tiff\
--with-vpx=/usr/local/libvpx
 
make&&makeinstall

 

9、安装t1lib

1
2
3
4
5
6
7
8
9
10
11
cd/home
 
tar zxvf t1lib-5.1.2.tar.gz
 
cdt1lib-5.1.2
 
./configure--prefix=/usr/local/t1lib--enable-shared
 
makewithout_doc
 
makeinstall

 

10、安装php

注意:如果系统是64位,请执行以下两条命令,否则安装php会出错(32位系统不需要执行)

1
2
3
4
5
6
7
8
9
10
11
\cp-frp/usr/lib64/libltdl.so*/usr/lib/
 
\cp-frp/usr/lib64/libXpm.so*/usr/lib/
 
cd/home
 
tar-zvxf php-5.6.5.tar.gz
 
cdphp-5.6.5
 
export LD_LIBRARY_PATH=/usr/local/libgd/lib

 

# 核对每一项安装的路径配置 本人这里的–with-mysql-sock=/tmp/mysqld.sock 有的为 –with-mysql-sock=/tmp/mysql.sock

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/data/mysql \
--with-mysqli=/data/mysql/bin/mysql_config \
--with-mysql-sock=/tmp/mysql.sock \
--with-pdo-mysql=/data/mysql \
--with-gd \
--with-png-dir=/usr/local/libpng \
--with-jpeg-dir=/usr/local/jpeg \
--with-freetype-dir=/usr/local/freetype \
--with-xpm-dir=/usr/ \
--with-vpx-dir=/usr/local/libvpx/ \
--with-zlib-dir=/usr/local/zlib \
--with-t1lib=/usr/local/t1lib \
--with-iconv \
--enable-libxml \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-opcache \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--disable-phar \
--with-gettext \
--enable-session \
--with-mcrypt \
--with-curl \
--enable-ctype \
--with-apxs2=/usr/local/httpd/bin/apxs 
 
 
 
make&&makeinstall
 

上面标志为红的,编译的时候要注意,另外在make 之后还是要运行下 make test 看下是否有error。

四,配置

1 配置 php.ini
cp  php.ini-production /usr/local/php/etc/php.ini#复制php配置文件到安装目录
 
rm -rf /etc/php.ini#删除系统自带配置文件
 
ln -/usr/local/php/etc/php.ini  /etc/php.ini    #添加软链接到 /etc目录
 
cp  /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf  #拷贝模板文件为php-fpm配置文件
 
ln -/usr/local/php/etc/php-fpm.conf  /etc/php-fpm.conf  #添加软连接到 /etc目录
 
  2 配置php-fpm 
 
vi  /usr/local/php/etc/php-fpm.conf  #编辑
 
user=www #设置php-fpm运行账号为www
 
group=www #设置php-fpm运行组为www
 
pid=run/php-fpm.pid #取消前面的分号
 
:wq!#保存退出
 
  设定开机启动
 
cp   sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm  #拷贝php-fpm到启动目录
 
chmod +/etc/rc.d/init.d/php-fpm   #添加执行权限
 
chkconfig php-fpm on#设置开机启动
 
 
3 pdo扩展配置

链接地址  http://blog.xuahua.com/articles/2016/05/09/1462762206356.html


centos7-安装-apache运行环境-httpd

 

下载编译安装apache 2.4.20

 链接 http://blog.xuahua.com//articles/2016/05/09/1462761030425.html

1,apache 的安装

安装apache之前,可能需要安装apr,如果没有,就按下面的方式安装即可。

1.1 安装 apr

wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz 下载apr

./configure  --prefix=/usr/local/apr

make

make  install

 

wget  http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

./configure  --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr

make

make install

 

1.2 下载安装httpd

 

  yum install gcc

wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.20.tar.gz
tar -jxvf httpd-2.4.20.tar.gz
cd httpd-2.4.20

 ./configure --prefix=/usr/local/httpd --enable-track-vars --enable-cgi --with-config-file-path=/usr/local/httpd/conf  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 

make 

make install

1.3 添加对php的支持

AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .php5
找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    添加:
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>   

2.4 运行启动 httpd

/usr/local/httpd/sbin/httpd restart

 

如果80 端口被占用,起不来,可以通过修改 

vim /usr/local/httpd/conf/http-config 

  链接 http://blog.xuahua.com//articles/2016/05/09/1462761030425.html

公告

喧哗博客--繁华过后的沉寂--技术经验分享^-^
Copyright (c) 2009-2019, b3log.org & hacpai.com