1. mysql5.5升级安装参看以下两篇文章
http://www.centoscn.com/image-text/setup/2014/0303/2485.html
http://www.sijitao.net/1563.html
简单说一下流程
a. 备份数据(mysql)
mysqldump -u root -pMyPassword DbName --lock-tables=false > data.sql
备份配置文件/etc/my.cnf 以及 二进制程序
此外还可以备份mysql库,mysql头文件,mysql share文件及其他mysql的二进制程序
b. 关闭相关的服务进程(apache,c_srv),停止mysql,删除mysql二进制程序文件
c. 安装cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz tarx zvfc cmake-2.8.12.2.tar.gz cd cmake-2.8.12.2 ./configure make && make install
d. 下载安装mysql5.5及依赖
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.36.tar.gz tar xzvf mysql-5.5.36.tar.gz cd mysql-5.5.36 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql make && make install
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.36.tar.gz tar xzvf mysql-5.5.36.tar.gz cd mysql-5.5.36 wget -c "http://bugs.mysql.com/file.php?id=19941&bug_id=68999" -O mysql-openssl.patch patch -p1 < mysql-openssl.patch
e. 配置和启动mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
在配置文件中添加数据目录,datadir = /data/mysql
/etc/init.d/mysql start(这里要注意mysql是否关了,之前遇到的bug就是不知为何mysql又起来了导致新的mysql拉不起来,这时候需要通过log找原因,ip.err)
/usr/local/mysql/bin/mysql_upgrade 这句可以不用
f. mysql客户端启动
ln -s /usr/local/mysql/bin/mysql /usr/bin
然后启动即可
2015-11-19重要更新
补充一个重要的点,升级后有时会出现grant,join等好些命令异常的问题,原因是表尤其是系统表没有升级,需要升级,具体参考下面链接
http://www.xuebuyuan.com/441728.html
2. 关于utf8mb4的使用
a. db,表批量转换成utf8mb4(字段不用)
具体参考http://fatkun.com/2011/05/mysql-alter-charset.html
b. 修改mysql配置,重启mysql
具体参考http://www.cnmiss.cn/?p=390
c. C++代码调整(JAVA只需要更新JDBC即可,PHP及其他没有摸索)
其实很简单,读写之前,加一句下面的语句,改成2进制形式存储即可
set charset binary;
执行完逻辑sql语句后变回来
set charset utf8mb4;
以上
-----------------------------------------华丽的分割线----------------------------------------------------------------------------------
附上PHP文件上传的一些参考
http://www.blogbus.com/wanping-logs/123101470.html PHP规范
http://blog.sina.com.cn/s/blog_3cdfaea201008utf.html 文件上传接收方
http://liyixing1.iteye.com/blog/1115029 文件上传分隔符