查看字符自和校验规则
mysql> SHOW CHARACTER set;
创建指定字符集的库
'''
mysql> create database test2 default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show create database test2;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test2 | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
'''
指定字符集
[root@mangodb ~]# mysqldump -uroot -p scott --default-character-set=utf8 > s.sql
MySQL插入中文不乱码5种方法
1. mysql> set name utf8 # 临时的 不建议用
2. 在文件中指定set name utf8 然后登录mysql 通过如下命令执行
mysql> source test.sql
3. 在sql文件中指定 set name utf8 然后通过命令导入数据
[root@mangodb ~]# mysqldump -uroot -p scott < test.sql
[root@mangodb ~]# mysqldump -uroot -p scott -e " set names utf8; select * from scott.test
4. 通过指定mysql命令的字符集参数实现--default-character-set=utf8
[root@mangodb ~]# cat test.sql
insert into test values(3,'张三')
[root@mangodb ~]# mysql -uroot -p scott --default-character-set=utf8 < test.sql
5. 在配置文件指定字符集
[client]
default-character-set=utf8
不用重启服务 退出重亲登录就生效了
[mysqld]
default-character-set=utf8 # 适合5.1以前版本
character-set-server=utf8 # 适合5.5
不乱吗的思想 linux 客户端 服务器 库 表 程序 都用同一种字符集
'''
mysql> show variables like 'character_set%';
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | utf8 客户字符集 set name utf8
| character_set_connection | utf8 链接字符集 set name utf8
| character_set_database | utf8 数据库字符集 配置文件指定或建库建表指定
| character_set_filesystem | binary
| character_set_results | utf8 返回结果符集 set name utf8
| character_set_server | utf8 客户端字符集 配置文件指定或建库建表指定
| character_set_system | utf8 客户端字符集
| character_sets_dir | /usr/local/mysql-5.5.32/share/charsets/ |
+--------------------------+-----------------------------------------+'''
总结 latinl > utf8
1. 库及表语句导出, sed批量修改为utf8
2. 导出所有mysql数据
3. 修改mysql服务的和客户端编码为utf8
4. 删除原有的库表及数据
5. 导入建库建表的语句
6. 导入mysql的数据
1. 导出表结构
mysqldump -uroot -pddbddb --default-character-set=latin1 -d dbname > alltable.sql
--default-character-set= gbk 表示以gbk字符集进行链接 -d 指导表结构
2. 编辑alltable.sql 将latinl改成gbk
3. 确保数据库不在更新,导出所有数据
mysqldump -uroot -pddbddb --no-create-info --extended-insert --default-character-set
=latinl dbname > alldata.sql
69

被折叠的 条评论
为什么被折叠?



