使用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数据库看看吧,是不是成功了?
上一篇:MariaDB简介
我来说两句: