vim booktable.sql 修改所有latin1为utf8
3):确保数据库不再更新,导出所有数据
mysqldump -uroot –p123456 --quick --no-create-info --extended-insert --default-character-set=latin1 book2>bookdata.sql
参数说明:
--quick:用于转储大的表linux命令大全,强制mysqldump从服务器一次一行的检索数据而不是检索所有行,并输出当前cache到内存中
--no-create-info:不要创建create table语句
--extended-insert:使用包括几个values列表的多行insert语法,这样文件更小,IO也小,导入数据时会非常快
--default-character-set=latin1:按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码
4):打开bookdata.sql 将SET NAME latin1 修改成SET NAME utf8
vim bookdata.sql
/*!40101 SET NAMES utf8 */;
5):重新建库
mysql> create database book2 default charset utf8;
6):建立表,导入我们之前导出的表的数据库
mysql –uroot –p123456 book <booktable.sql
7):导入数据
mysql -uroot -p123456 book2 <bookdata.sql
注意:选择目标字符集时,要注意最好大于等于原字符集(字库更大),否则可能会丢失不被支持的数据
二:MySQL日常维护1:mysqlcheckà mysql修复工具mysqlcheck客户端工具可以检查和修复MyISAM表,还可以优化和分析表。
实际上,它集成了mysql工具中check、repair、analyze、tmpimize的功能。
/usr/local/mysql/bin/mysqlcheck #源码编译安装位置
rpm -qf `which mysqlcheck` yum安装查看
参数选项:
mysqlcheck –-help 查看帮助
-c, --check (检查表);
-r, --repair(修复表);
-a, --analyze (分析表);
-o, --tmpimize(优化表); //其中,默认选项是-c(检查表)
-u, 使用mysql中哪个用户进行操作
Mysqlcheck使用语法:
使用以下3种方式来调用mysqlcheck:
mysqlcheck[tmpions] db_name [tables]
mysqlcheck[tmpions] ---database DB1 [DB2 DB3...]
mysqlcheck[tmpions] --all--database
如果没有指定任何表或使用---database或--all--database选项,则检查整个数据库。
举例说明:
1:检查表(check)
mysqlcheck -uroot -p123456 -c book books
2:修复表(repair)
mysqlcheck -uroot -p123456 -r book books
3:修复指定的数据库
mysqlcheck -uroot -p -r --database book
扩展: 修复文件系统。 容易掉失数据