mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效 GBK: create database test2 DEFAULT CHARACTER
mysql创建数据库的语法格式: CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>]; 最简单的建库语句为: CREATE DATABASE xxx_db: 一般会加上if not exists来判断该库不存在时才添加: CREATE DATABASE IF NOT EXISTS xxx_db: 有时需要指定字符集和校对规则
//建立数据库 drop database if exists 你的db名; create database 你的db名 CHARACTER SET utf8 COLLATE utf8_general_ci; //新建用户 use mysql; insert into user (host,user,password) values('%', '你的db名',PASSWORD('你的db密码')); FLUSH PRIVILEGES; //授限给新用户 grant all privileges
utf8_unicode_ci和utf8_general_ci对中英文来说没有实质的差别.utf8_general_ci: 校对速度快,但准确度稍差.utf8_unicode_ci: 准确度高,但校对速度稍慢.若数据库中有德语.法语或者俄语需求,需使用utf8_unicode_ci.其他情况用utf8_general_ci即可. Note:ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的.
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci