`
eimhee
  • 浏览: 2150573 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

防止mysqldump编码问题

 
阅读更多

Creating a MySQL dump file of your database can be fairly straightforward, but, if you aren't careful, you could corrupt the character set in your backup file.

I used to created a database dump using a command like the following:

 

mysqldump -u nathan -p database1 > database1.backup.sql

 

The above command is very straightforward in that it generates a dump file using default options and redirects the output to a file instead of to standard output.

However, I want all my data to maintain a UTF-8 character set. To do this I need to use 2 options:
--default-character-set=utf8: This insures UTF8 is used for each field
--result-file=file.sql: This option prevents the dump data from passing the through the Operating System which likely does not use UTF8. Instead it passes the dump data directly to the file specified.

Using these new options your dump command would look something like this:

mysqldump -u nathan -p --default-character-set=utf8 --result-file=database1.backup.sql database1

 

If you are like me and are constantly creating MySQL dumps, you might want to consider creating a simple shell script like the one I use below.

#!/bin/bash
 
db_user="root"
db_pass="password"
 
mysqldump -u $db_user -p $db_pass --single-transaction --default-character-set=utf8 --result-file=$1.$(date -I).sql $1

 

The script just takes a single argument, the database name, and generates a datestamped dump file of it in the current directory.

 

 

Importing a dump safely

Do not do this, since it might screw up encoding:

 

mysql -u username -p database < dump_file # this is bad

 Better do:

mysql -uroot -p --default-character-set=utf8 database

mysql> SOURCE utf8.dump

 

0
0
分享到:
评论

相关推荐

    mysqldump备份还原和mysqldump导入导出语句大全详解

    - `--default-character-set=charset`用于指定导出数据时的字符集,防止乱码问题。 - `--hex-blob`将二进制数据以十六进制格式导出,适用于BINARY、VARBINARY和BLOB类型字段。 - `--routines`, `-R`参数用于导出存储...

    解决MySQL中文乱码以及版本不一致问题.pdf

    在本文中,我们将深入探讨如何解决MySQL中文乱码问题以及处理不同版本MySQL之间的数据迁移。在尝试将数据从一个MySQL实例迁移到另一个不同版本的实例时,可能会遇到各种挑战,包括编码不匹配和版本不兼容。以下是...

    模拟数据库中数据乱码.docx

    数据库中的数据乱码问题通常是由于字符集不匹配造成的。字符集定义了数据库、表或字段如何存储和显示字符。在MySQL中,常见的字符集有`latin1`和`utf8`,其中`utf8`支持更多的字符,包括中文字符。当数据库、表或...

    mysql使用source 命令乱码问题解决方法

    MySQL中的乱码问题通常涉及到字符集设置,尤其是在跨平台的数据迁移过程中。这个问题主要出现在两个环节:数据导出和数据导入。...通过正确设置字符集,可以有效地防止和解决乱码问题,保证数据的正确性。

    完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题

    标题中的“完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题”涉及到的是在MySQL数据库中处理字符编码转换的问题,特别是针对从不同字符集(如GBK或Latin1)转换到UTF8的情况,以解决乱码问题。描述中提到的...

    mysqlbackup&winrar;

    接下来,我们关注如何解决备份时的LongBlob数据类型乱码问题。LongBlob是用来存储大量二进制数据的字段类型,如图片、文档或大段文本。当这类数据被`mysqldump`导出时,可能会因为编码问题导致乱码。解决方案通常...

    省市区编码sql脚本.rar

    7. **备份和恢复**:为了防止数据丢失,可能会包含备份和恢复数据库的相关命令,如`mysqldump`用于备份,`mysql`用于恢复。 8. **权限设置**:为了保证数据安全,脚本中可能还会涉及用户权限的分配,如`GRANT`和`...

    mysql恢复数据库方法.doc

    特别是字符集设置,必须与原始数据库的编码相匹配,以防止导入数据时出现乱码问题。 在没有直接导入功能的情况下,使用`.sql`文件进行数据迁移是一种普遍的解决方案。对于不具备高级数据库管理技能的用户,可能需要...

    archive_ mysql还原精灵 v1.0 β(GB2312) [江西新余电信].zip.zip

    3. **编码问题**:在处理中文字符时,编码选择至关重要。GB2312是中国早期的汉字编码标准,但对于现代应用,UTF-8更为普遍,因为它支持更多字符集。 4. **数据库安全**:在备份和恢复过程中,应确保操作的安全性,...

    mysql.zip_MYSQL数据库_mysql导入_mysql文件

    - 文件编码:确保SQL文件的编码与MySQL服务器的字符集相匹配,避免导入时出现乱码问题。 - 数据库权限:导入操作可能需要具有足够的权限,例如`CREATE TABLE`和`INSERT`等。 - 大文件处理:对于大型SQL文件,可能...

    用JAVA导出MYSQL的数据

    这里需要注意的是,由于数据可能包含中文字符,因此在处理输入流和输出流时需要指定正确的字符编码(通常是UTF-8)以防止乱码。 除了导出,Java还可以用于数据库的恢复(即导入)。这通常通过调用`mysql`命令来实现...

    mysql数据库教程.docx

    在导入数据之前,确保本地的MySQL版本与源数据库版本兼容,以及字符集设置正确,以防止数据丢失或乱码问题。 总结来说,MySQL数据库的管理和恢复涉及多个方面,包括理解数据库文件结构、安装与配置MySQL、以及正确...

    MySQL数据库安装文档.zip

    7. **解决乱码问题**:在处理中文字符时,可能会遇到乱码问题。这通常涉及到设置正确的字符集,如utf8或utf8mb4,以及在my.cnf配置文件中配置[client]、[mysqld]和[mysql]部分的character-set相关参数。 8. **配置...

    MySQL自定义备份方案设计.pdf

    此外,自定义方案还会考虑使用UTF-8编码,以确保跨平台和跨语言环境的数据一致性。 3. 日志备份与恢复 MySQL的二进制日志记录了所有改变数据库的事务,可用于增量备份和点-in-time恢复。通过配置合适的日志格式和...

    mysqlbinlog

    - `--skip-same-server-id`选项防止在主从复制时出现循环复制的问题。 3. **备份与恢复** - mysqlbinlog配合全量备份(如mysqldump)可以实现基于时间点的恢复,这对于业务连续性和灾难恢复至关重要。 - 通过将...

    自用mysql自带命令实现数据库备份还原的方法

    4. **处理乱码问题**: 如果在导入过程中遇到中文乱码,确保源文件和目标数据库的字符集设置一致。在创建数据库时指定字符集,如: ```sql CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_...

    MySQL备份与恢复(PDF版).pdf

    - `--default-character-set=charset`:指定导出数据的字符集,防止乱码。 - `--disable-keys`:在INSERT语句前后添加禁用和启用索引的语句,提高插入速度(仅适用于MyISAM表)。 - `--extended-insert= true|...

    MySQL 备份和恢复

    3. `--default-character-set=charset`:指定导出数据的字符集,避免导入时出现乱码问题。 4. `--disable-keys`:导出前禁用索引,提高插入速度,仅适用于MyISAM表。 5. `--extended-insert = true|false`:默认启用...

    Mysql字符集

    为了保证数据的一致性和避免乱码问题,必须保持客户端和服务器端字符集的一致。这可以通过在会话开始时使用`SET NAMES ***`命令来实现,例如`SET NAMES utf8`。 #### 四、字符集的修改 如果在运行一段时间后需要...

Global site tag (gtag.js) - Google Analytics