使用mysqldump转换mysql数据库字符编码为utf8

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/58/ ]

手头上有一台mysql数据库服务器,因为历史原因,mysql数据库的字符编码为latin1,但PHP程序使用的是utf8编码,所以每次从mysql数据库中读取数据,都得向mysql数据库发送设置字符集的命令

手头上有一台mysql数据库服务器,因为历史原因,mysql数据库的字符编码为latin1,但PHP程序使用的是utf8字符编码,所以磨途歌每次从mysql数据库中读取数据,都得向mysql数据库发送设置字符集的命令:

mysql_query("SET NAMES latin1");

虽然PHP通过设置字符编码能解决乱码问题,但是用phpmyadmin浏览mysql数据库,中文依然显示为乱码,很不方便管理。

最近在整理服务器,备份好mysql数据库后,就开始动手转换mysql数据库字符编码,把latin1编码的数据转成utf8编码:

一)用mysqldump工具导出数据库

mysqldump --all-databases --default-character-set=latin1 -u root -p > all_db.sql
mysqldump --databases mo2g --default-character-set=latin1 -u root -p > mo2g.sql
mysqldump参数
mysqldump参数说明
--all-databases
导出mysql数据库服务器上所有的数据库
--databases
导出mysql数据库服务器上指定的数据库
--default-character-set
设置连接mysql数据库服务器的字符编码
-u
设置登录mysql数据库服务器的用户名
-p如果用户名的密码不为空,必须添加该参数
-E合并insert,能有效压缩sql文件大小
-R备份存储过程
-d
不导出数据
-t
不导出表结构

二)修改导出的sql文件,有点类似下边,虽然mo2g这台服务用的是MariaDB数据库,但同样使用于mysql数据库。

-- MySQL dump 10.14  Distrib 5.5.32-MariaDB, for Linux (x86_64)
--
-- Host: localhost    Database: mo2g
-- ------------------------------------------------------
-- Server version   5.5.29-MariaDB

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES latin1 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `mo2g`
--

把第10行的代码改一下

/*!40101 SET NAMES latin1 */;

改成

/*!40101 SET NAMES utf8 */;

三)最后再将修改的sql文件导入MariaDB数据库,mysql数据库同样适用。

mysql -u root -p < mo2g.sql

如果没有显示任何错误,就说明已经成功把MariaDB数据库或mysql数据库由latin1字符编码转换成utf8编码了。

现在,就用phpmyadmin连接MariaDB数据库或mysql数据库看看吧,是不是成功了?

评论:

  1. 暂无评论...
  2. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码