標籤歸檔: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('新密碼');
發表在 站長文檔 | 標籤為 , | 留下評論