国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

簡析mysql字符集導致恢復數據庫報錯問題

2024-07-24 13:14:42
字體:
來源:轉載
供稿:網友

mysql/272650.html">mysql字符集編碼錯誤的導入數據會提示錯誤了,這個和插入數據一樣如果保存的數據與mysql編碼不一樣那么肯定會出現導入亂碼或插入數據丟失的問題,下面我們一起來看一個例子。

<script>ec(2);</script>

恢復數據庫報錯:由于字符集問題,最原始的數據庫默認編碼是latin1,新備份的數據庫的編碼是utf8,因此導致恢復錯誤。

[root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /tmp/11x-B-2014-06-18.sql ERROR 1064 (42000) at line 292: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''[caption id=/"attachment_271/" align=/"aligncenter/" width=/"300/"]<a href=/"ht' at line 1

修復方法(未實測):

[root@Test ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' --default-character-set=latin1 t4x < /tmp/11x-B-2014-06-18.sql MySQL-- MySQL dump 10.13 Distrib 5.5.37, for Linux (x86_64)---- Host: localhost  Database: t4x-- -------------------------------------------------------- Server version    5.5.37-log/*!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 utf8 */;/*!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: `t4x`--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `t4x` /*!40100 DEFAULT CHARACTER SET utf8 */;---- Table structure for table `wp_baidusubmit_sitemap`--DROP TABLE IF EXISTS `wp_baidusubmit_sitemap`;/*!40101 SET @saved_cs_client   = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `wp_baidusubmit_sitemap` ( `sid` int(11) NOT NULL AUTO_INCREMENT, `url` varchar(255) NOT NULL DEFAULT '', `type` tinyint(4) NOT NULL, `create_time` int(10) NOT NULL DEFAULT '0', `start` int(11) DEFAULT '0', `end` int(11) DEFAULT '0', `item_count` int(10) unsigned DEFAULT '0', `file_size` int(10) unsigned DEFAULT '0', `lost_time` int(10) unsigned DEFAULT '0', PRIMARY KEY (`sid`), KEY `start` (`start`), KEY `end` (`end`)) ENGINE=MyISAM AUTO_INCREMENT=84 DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;01[root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /tmp/t4x-B-2014-06-17.sql ERROR 1064 (42000) at line 295: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''i' at line 1

MySQL

-- MySQL dump 10.11---- Host: localhost  Database: t4x-- -------------------------------------------------------- Server version    5.0.95-log/*!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 utf8 */;/*!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: `t4x`--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `t4x` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `t4x`;---- Table structure for table `wp_baidusubmit_sitemap`--DROP TABLE IF EXISTS `wp_baidusubmit_sitemap`;/*!40101 SET @saved_cs_client   = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `wp_baidusubmit_sitemap` ( `sid` int(11) NOT NULL auto_increment, `url` varchar(255) NOT NULL default '', `type` tinyint(4) NOT NULL, `create_time` int(10) NOT NULL default '0', `start` int(11) default '0', `end` int(11) default '0', `item_count` int(10) unsigned default '0', `file_size` int(10) unsigned default '0', `lost_time` int(10) unsigned default '0', PRIMARY KEY (`sid`), KEY `start` (`start`), KEY `end` (`end`)) ENGINE=MyISAM AUTO_INCREMENT=83 DEFAULT CHARSET=utf8;/*!40101 SET character_set_client = @saved_cs_client */;

字符集相關:

MySQL

mysql>show variables like '%character_set%';-------------------------- ---------------------------- | Variable_name      | Value           |-------------------------- ---------------------------- | character_set_client   | utf8            || character_set_connection | utf8            || character_set_database  | utf8            || character_set_filesystem | binary           || character_set_results  | utf8            || character_set_server   | latin1           || character_set_system   | utf8            || character_sets_dir    | /usr/share/mysql/charsets/ |-------------------------- ---------------------------- mysql>set names gbk;mysql>show variables like '%character_set%';-------------------------- ---------------------------- | Variable_name      | Value           |-------------------------- ---------------------------- | character_set_client   | gbk            || character_set_connection | gbk            || character_set_database  | utf8            || character_set_filesystem | binary           || character_set_results  | gbk            || character_set_server   | latin1           || character_set_system   | utf8            || character_sets_dir    | /usr/share/mysql/charsets/ |-------------------------- ---------------------------- mysql>system cat /etc/my.cnf | grep default  #客戶端設置字符集client下面 default-character-set=gbkmysql>show variables like '%character_set%';-------------------------- ---------------------------- | Variable_name      | Value           |-------------------------- ---------------------------- | character_set_client   | gbk            || character_set_connection | gbk            || character_set_database  | latin1           || character_set_filesystem | binary           || character_set_results  | gbk            || character_set_server   | latin1           || character_set_system   | utf8            || character_sets_dir    | /usr/share/mysql/charsets/ |-------------------------- ---------------------------- mysql> system cat /etc/my.cnf|grep character-set-server  #客戶端設置字符集mysqld下面 character-set-server = cp1250 mysql> show variables like '%character_set%';-------------------------- -------------------------------------------- | Variable_name      | Value                   |-------------------------- -------------------------------------------- | character_set_client   | utf8                    || character_set_connection | utf8                    || character_set_database  | cp1250                   || character_set_filesystem | binary                   || character_set_results  | utf8                    || character_set_server   | cp1250                   || character_set_system   | utf8                    || character_sets_dir    | /byrd/service/mysql/5.6.26/share/charsets/ |-------------------------- -------------------------------------------- 8 rows in set (0.00 sec)

其他的一些設置方法:

修改數據庫的字符集

  mysql>use mydb  mysql>alter database mydb character set utf-8;

創建數據庫指定數據庫的字符集

  mysql>create database mydb character set utf-8;

通過配置文件修改:

修改/var/lib/mysql/mydb/db.opt

default-character-set=latin1default-collation=latin1_swedish_ci

default-character-set=utf8default-collation=utf8_general_ci

重起MySQL:

[root@bogon ~]# /etc/rc.d/init.d/mysql restart

通過MySQL命令行修改:

mysql> set character_set_client=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_connection=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_database=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_results=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_server=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_system=utf8;Query OK, 0 rows affected (0.01 sec)mysql> set collation_connection=utf8;Query OK, 0 rows affected (0.01 sec)mysql> set collation_database=utf8;Query OK, 0 rows affected (0.01 sec)mysql> set collation_server=utf8;Query OK, 0 rows affected (0.01 sec)

查看:

mysql> show variables like 'character_set_%';-------------------------- ---------------------------- | Variable_name       | Value            |-------------------------- ---------------------------- | character_set_client   | utf8            || character_set_connection | utf8            || character_set_database  | utf8            || character_set_filesystem | binary           || character_set_results   | utf8            || character_set_server   | utf8            || character_set_system   | utf8            || character_sets_dir    | /usr/share/mysql/charsets/ |-------------------------- ---------------------------- 8 rows in set (0.03 sec)mysql> show variables like 'collation_%';---------------------- ----------------- | Variable_name     | Value      |---------------------- ----------------- | collation_connection | utf8_general_ci || collation_database  | utf8_general_ci || collation_server   | utf8_general_ci |---------------------- ----------------- 3 rows in set (0.04 sec)

 

總結

以上就是本文關于簡析mysql字符集導致恢復數據庫報錯問題的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復大家。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深水埗区| 南通市| 介休市| 滁州市| 宣恩县| 韩城市| 大田县| 得荣县| 理塘县| 隆子县| 临湘市| 福鼎市| 巴塘县| 浦城县| 凤冈县| 龙南县| 特克斯县| 曲阜市| 高碑店市| 灵寿县| 石嘴山市| 云南省| 元谋县| 昭觉县| 岑溪市| 南宁市| 武隆县| 临高县| 霍山县| 天镇县| 桓仁| 资阳市| 英山县| 多伦县| 尤溪县| 衡南县| 昌吉市| 恩施市| 叙永县| 元谋县| 刚察县|