How to unify the character set on an existing mysql database

How to unify the character set on an existing mysql database

Preface

In the database, some data tables and data are in latin1, some data tables and data are in UTF8, and some tables have utf8 structure and latin1 data.

This is the first time I have encountered such a strange situation in my more than ten years of work. Let's talk about how to unify the character set into utf8

1. Create an empty database

2. Export the table structure and data in utf8 format, and then import it directly into the new database

3. The data table and data are both in latin1. First export the table structure and data, add --default-character-set=latin1, change latin1 to utf8 in the exported file, and then import it into the new database.

4. If the table structure is utf8 and the table data is latin1, there are two methods:

4.1, first export the table structure and import it into the new database. When exporting data, add --default-character-set=utf8, because the table structure is utf8 and the table data is latin1, which is garbled when it is stored in the database. Import the data into the new library. This solution has disadvantages. If --default-character-set=utf8 is used, the exported data may be lost, and the exported data may give an error when imported.

4.2, you can use binary character set for transfer, this method is recommended

UPDATE user SET user_name = CONVERT(CONVERT(CONVERT(user_name USING latin1) USING binary) USING UTF8);

This method saves the trouble of exporting and importing, and is relatively fast. It takes about 5-6 seconds to complete 110,000 records.

Database design is very important and must be considered carefully when designing the database. If the foundation is not solid, the building will collapse sooner or later.

You may also be interested in:
  • MySQL character set viewing and modification tutorial
  • How to modify the MySQL character set
  • Causes and solutions to the garbled character set problem in MySQL database
  • How to change MySQL character set utf8 to utf8mb4
  • MySQL character set garbled characters and solutions
  • Detailed explanation of JDBC's processing of Mysql utf8mb4 character set
  • Solution to index failure in MySQL due to different field character sets
  • How to change the default character set of MySQL to utf8 on MAC
  • How to set the character set for mysql under Docker
  • How to solve the problem of MySQL query character set mismatch
  • Detailed explanation of character sets and validation rules in MySQL

<<:  The pitfall record of the rubber rebound effect of iOS WeChat H5 page

>>:  Detailed example of deploying Nginx+Apache dynamic and static separation

Recommend

A brief discussion on the role of the docker --privileged=true parameter

Around version 0.6, privileged was introduced to ...

Summary of flex layout compatibility issues

1. W3C versions of flex 2009 version Flag: displa...

CSS to achieve compatible text alignment in different browsers

In the front-end layout of the form, we often nee...

JavaScript implementation of classic snake game

This article shares the specific code of JavaScri...

Rsync+crontab regular synchronization backup under centos7

Recently, I want to regularly back up important i...

Summary of 7 pitfalls when using react

Table of contents 1. Component bloat 2. Change th...

Some questions about hyperlinks

<br />I am very happy to participate in this...

Summary of Linux command methods to view used commands

There are many commands used in the system, so ho...

css add scroll to div and hide the scroll bar

CSS adds scrolling to div and hides the scroll ba...

How to create Apache image using Dockerfile

Table of contents 1. Docker Image 2. Create an in...

Detailed tutorial on installing Mysql5.7.19 on Centos7 under Linux

1. Download MySQL URL: https://dev.mysql.com/down...

Summary of JS tips for creating or filling arrays of arbitrary length

Table of contents Preface Direct filling method f...