State Changed | |
---|---|
From-To: | open->closed |
By: | ale |
When: | Tue Sep 13 14:56:05 UTC 2011 |
Why: | You should use my.cnf for this config params. |
具体参考 : freebsd mysql5.1 与mysql5.5的参数变更
diff -urN mysql55-server-old/Makefile mysql55-server/Makefile --- mysql55-server-old/Makefile 2011-09-10 14:38:44.000000000 +0000 +++ mysql55-server/Makefile 2011-09-10 15:16:00.000000000 +0000 @@ -53,6 +53,12 @@ .if defined(WITH_FASTMTX) CMAKE_ARGS+= -DWITH_FAST_MUTEXES=1 .endif +.if defined(WITH_CHARSET) && ${WITH_CHARSET} != "" +CMAKE_ARGS+= -DDEFAULT_CHARSET=${WITH_CHARSET} +.endif +.if defined(WITH_COLLATION) && ${WITH_COLLATION} != "" +CMAKE_ARGS+= -DDEFAULT_COLLATION=${WITH_COLLATION} +.endif # MySQL-Server part .if !defined(CLIENT_ONLY)
参考 : ports/160630: [PATCH] databases/mysql55-server Add WITH_COLLATION and WITH_CHARSET
以往在freebsd中安装databases/mysql55-{server,client}时,需要如下的参数 :
make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_XCHARSET=complex install
--- mysql55-server/Makefile.orig 2011-03-19 21:13:47.000000000 +0800 +++ mysql55-server/Makefile 2011-04-08 14:31:05.815962791 +0800 @@ -39,7 +39,10 @@ -DINSTALL_SQLBENCHDIR="share/mysql" \ -DINSTALL_SUPPORTFILESDIR="share/mysql" \ -DWITH_LIBEDIT=0 \ - -DWITH_LIBWRAP=1 + -DWITH_LIBWRAP=1 \ + -DDEFAULT_CHARSET="utf8" \ + -DDEFAULT_COLLATION="utf8_general_ci" \ + -DWITH_EXTRA_CHARSETS="complex" .ifdef USE_MYSQL .error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.
通过使用port来安装
1.该ports 做得不是太好,不支持 make config 修改选项,只能在命令行用
make WITH_CHARSET=gbk WITH_XCHARSET=all 追加参数,或者直接修改 Makefile文件。
2.WITH_CHARSET=gbk 是将mysql的服务及数据库的默认字符集由latin1改为gbk;WITH_XCHARSET=all 是将mysql软件包所带的字符集(包括gbk 和 gb2132)都释放出来。
mysql 不是真的不支持中文,只是采用了utf8字符集而已。 所以不建议你改变默认字符集,应由程序(如PHP)在连接数据库时选定合适的字符集。如,在config.inc.php之类连接参数文件中设定 mysql_query("set names gbk");改变默认字符集可能导致有些外国编的软件如VBulletin3.60运行错误。建议你在mysql5编译时只增加 WITH_XCHARSET=all 即可。
3.应用 make clean 清除配置(假设你以前编译过)
然后 make WITH_XCHARSET=all
最后 make install 安装编译好的软件包(如你以前以前安装过,最好用make reinstall)
4.如你用phpmyadmin导入以前的数据(gb2132 或gbk格式),在创建数据库时务必将默认参数“整理”改为gbk_chinese_ci
5.可以尝试修改my.cnf文件来改变服务器以及客服端的字符编码
[client]
...
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8
[mysqld]
...
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8
[mysql]
.......
default-character-set=utf8
1.该ports 做得不是太好,不支持 make config 修改选项,只能在命令行用
make WITH_CHARSET=gbk WITH_XCHARSET=all 追加参数,或者直接修改 Makefile文件。
2.WITH_CHARSET=gbk 是将mysql的服务及数据库的默认字符集由latin1改为gbk;WITH_XCHARSET=all 是将mysql软件包所带的字符集(包括gbk 和 gb2132)都释放出来。
mysql 不是真的不支持中文,只是采用了utf8字符集而已。 所以不建议你改变默认字符集,应由程序(如PHP)在连接数据库时选定合适的字符集。如,在config.inc.php之类连接参数文件中设定 mysql_query("set names gbk");改变默认字符集可能导致有些外国编的软件如VBulletin3.60运行错误。建议你在mysql5编译时只增加 WITH_XCHARSET=all 即可。
3.应用 make clean 清除配置(假设你以前编译过)
然后 make WITH_XCHARSET=all
最后 make install 安装编译好的软件包(如你以前以前安装过,最好用make reinstall)
4.如你用phpmyadmin导入以前的数据(gb2132 或gbk格式),在创建数据库时务必将默认参数“整理”改为gbk_chinese_ci
5.可以尝试修改my.cnf文件来改变服务器以及客服端的字符编码
[client]
...
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8
[mysqld]
...
character-set-server=utf8
collation-server=utf8_general_ci
default-character-set=utf8
[mysql]
.......
default-character-set=utf8
No comments:
Post a Comment