今儿说说MySQL。
安装部分这里就略过了,网上有许多,我并没有安装startup item,所以开机MySQL不会自启动,需要用mysqld_safe来启动,这里主要说说中文字符集的事情。
mysql装好后,发现中文字符是乱码,首先想到的是客户端字符集的问题,确认是UTF-8,又想到是服务器端字符集,连接mysql后(mysql -u root -p)
上图是我修改过之后的截屏,默认安装应该是Ascii(在windows上安装时,有单独的字符集选择环节,所以一般不会有这个问题),需要通过set命令修改,通常需要将character_set_database和character_set_server改为utf8。
心想这次没问题了,使用客户端工具连接后,读写中文都没问题,但使用web application写入中文仍是乱码,这就有些搞不懂了。仔细想想,客户端IO没问题,而appliaction出问题,那一定是出在jdbc驱动上,然后试着在jdbc driver的url上,加入characterEncoding=utf8的参数,果然好了。
这其实是我编码的一个不好的习惯,不论什么样的运行环境,在jdbc driver的url上加入字符集的显式约定参数都是好习惯,我猜想:应为我们使用的中文版windows操作系统本身的字体集就是中文的,所以jdbc驱动不约定也会是默认中文,而mac os可能不是这样,即便是中文版的操作系统,其连接字符集也不是中文的,所以会有此类问题。
希望对你有用。