标签归档:mysql

mysql不能储存生僻汉字?试试utf8mb4字符集

今天发现存进mysql的数据部分丢失了。发现丢失的都是一些生僻的汉字。我这个mysql使用的是utf8字符集,之前一直以为不会发生这种问题,今天才看到了。而且这个问题很早就存在了。这是mysql的一个bug,它的UTF-8字符集只能存储3字节字符,而有部分生僻的汉字是4个字节的,存入时就会出错:

ActiveRecord::StatementInvalid: Mysql::Error: Incorrect string value: ‘\xF0\x90\x8D\x83\xF0\x90…’ for column ‘content’ at row 1

上面的官方bug页面说要到mysql6.0才会解决。其实这个问题在mysql 5.5就解决了。5.5或以上的mysql都可以通过使用utf-16或utf8mb4等字符集解决这个问题。

不过使用ruby on rails的话可能需要一些额外的设置

发表在 信息处理 | 标签为 , , , , , | 留下评论

linux下使用logrotate自动备份mysql数据库

logrotate是linux下的一个日志文件管理工具。apache,nignx或系统的log文件如不处理, 正常情况下会慢慢变的大, 久了, 硬盘就会爆掉。 logrotate(配合cron)就是用来周期性分割、压缩、删除日志文件用的。前段时间在找mysql数据库的自动备份方法的时候, 在 http://islandlinux.org/howto/automated-mysql-backups 看到了使用logrotate来备份mysql数据库的偏方, 感觉不错, 在这里和大家分享一下。

继续阅读

发表在 站长文档 | 标签为 , , , , | 留下评论

Ubuntu 10.04 上安装Nginx 0.8.52 + PHP-fpm 5.3.3 + APC和MySQL

Ubuntu 10.04 上源码编译安装Nginx 0.8.52 + PHP-fpm 5.3.3 + APC和MySQL
Ubuntu 是服务器上常用的Linux发行版本. 10.04是最新的LTS版本. Nginx则是占用内存少, 速度快的网页server的后起之秀. PHP从5.3.3起, 内置了FPM补丁, 跟nginx的兼容性又上了一个台阶. 本文是在Ubuntu 10.04上源码编译安装nginx 0.8.52, PHP-fpm 5.3.3, 加APC PHP加速的操作教程. (最后使用apt-get安装mysql数据库).

注意, 整个安装过程都是使用root帐号.

继续阅读

发表在 站长文档 | 标签为 , , , , , | 4 条评论

mysqlnd cannot connect to MySQL 4.1+ using old authentication

用PHP5.3.2安装UCenter时遇到 mysqlnd cannot connect to MySQL 4.1+ using old authentication 错误. 类似的错误在安装mediawiki时也遇到过.

这是由于mysql数据库还使用旧的验证方式的结果. 解决方法其实很简单, 重新设置一下用户密码就可以了:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
发表在 站长文档 | 标签为 , | 留下评论