|
首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容 对于使用者来说,一般推荐使用utf8编码来存储数据。而要解决乱码问题,不单单是MySQL数据的存储问题,还
1 -------客户端---- 2 [client] 3 no-beep 4 5 # pipe 6 # socket=mysql 7 port=3306 8 9 [mysql] 10 11 default-character-set=gb2312 12 13 -----服务器---- 14 15 # The default character set that will be used when a new schema or table is 16 # created and no character set is defined 17 character-set-server=gb2312 1.service mysqld stop,停用mysql。 2.cp /etc/my.cnf /etc/my.cnf.bak,修改前做备份,这是个好习惯。 修改my.cnf或my.ini(只有修改配置文件,并重启服务器,才能永久生效) 3.service mysqld restart,重启。 4.show variables like \'%char%\';查看。
以下为网络转载,比较全。 ////////////////////////////////////////// 查看mysql字符集MySQL 乱码的根源是的 MySQL 字符 1 show variables like \'collation_%\'; 2 show variables like \'character_set_%\';
1 ---1.修改数据库字符集 2 alter database mini default character set = gb2312; 3 ----2.创建数据库设置字符集 4 create database mydb character set gb2312;
1 alter table pub_logs default character set = gb2312; 2 alter table pub_logs convert to character set gb2312;
1 SELECT a.TABLE_TYPE,CONCAT(\'alter TABLE \',A.TABLE_NAME,\' default character set = gb2312;\') FROM INFORMATION_SCHEMA.TABLES A 2 WHERE A.TABLE_SCHEMA=\'MINI\' 3 AND a.TABLE_TYPE=\'BASE TABLE\' 4 ;
1 SELECT CONCAT(CONCAT(CONCAT(\'alter TABLE \',c.TABLE_NAME,\' modify\'),CONCAT(\' \',C.COLUMN_NAME,\' \'),C.COLUMN_TYPE),\' \',\' character set gb2312 COLLATE gb2312_chinese_ci;\') AS CLOU 2 FROM 3 INFORMATION_SCHEMA.COLUMNS C,INFORMATION_SCHEMA.TABLES A 4 WHERE c.TABLE_SCHEMA=\'MINI\' 5 AND A.TABLE_NAME=c.TABLE_NAME 6 AND A.TABLE_TYPE=\'BASE TABLE\' 7 AND c.DATA_TYPE=\'varchar\' 8 ;
|
相关文章: