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

How to configure ssh/sftp and set permissions under Linux operating system

Compared with FTP, SSH-based sftp service has bet...

Explanation of the usage of replace and replace into in MySQL

MySQL replace and replace into are both frequentl...

Web development tutorial cross-domain solution detailed explanation

Preface This article mainly introduces the cross-...

VS2019 connects to mysql8.0 database tutorial with pictures and text

1. First, prepare VS2019 and MySQL database. Both...

mysql having usage analysis

Usage of having The having clause allows us to fi...

Implementation of dynamic particle background plugin for Vue login page

Table of contents The dynamic particle effects ar...

Implementation of Vue 3.x project based on Vite2.x

Creating a Vue 3.x Project npm init @vitejs/app m...

CentOS7.5 installation of MySQL8.0.19 tutorial detailed instructions

1. Introduction This article does not have screen...

Sample code for installing ElasticSearch and Kibana under Docker

1. Introduction Elasticsearch is very popular now...

WeChat applet implements a simple handwritten signature component

Table of contents background: need: Effect 1. Ide...

Detailed explanation of how to create an array in JavaScript

Table of contents Creating Arrays in JavaScript U...

Example of how to identify the user using a linux Bash script

It is often necessary to run commands with sudo i...

Detailed explanation of TIMESTAMPDIFF case in MySQL

1. Syntax TIMESTAMPDIFF(unit,begin,end); Returns ...

Detailed explanation of how to use Tomcat Native to improve Tomcat IO efficiency

Table of contents Introduction How to connect to ...