婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 教你解決往mysql數據庫中存入漢字報錯的方法

教你解決往mysql數據庫中存入漢字報錯的方法

熱門標簽:html地圖標注并導航 大豐地圖標注app 催天下外呼系統 呂梁外呼系統 南太平洋地圖標注 400電話辦理服務價格最實惠 武漢電銷機器人電話 北京金倫外呼系統 400電話變更申請

一、遇到的問題

在向數據庫中存入漢字時遇到這樣的問題:

Cause: java.sql.SQLException: Incorrect string value: ‘\xE6\x9F\xAF\xE5\x8D\x97' for column ‘user_name' at row 1

二、分析問題

這是由于數據庫設計有問題導致的,當初創建數據庫的時候直接選擇的默認,沒有修改為utf-8,后來嘗試手動修改還是不行。

嘗試把數據庫和表的默認字段改為utf8,但是還是不能存漢字。


三、真正的問題

真正的問題打開表的信息可以看到latin1的存在,這是因為即使我們后面手動修改字段類型還是修改不了的,就像上面即使我們修改了,可是表信息還是沒有改掉,真正的解決辦法:1、要不我們重新創建數據庫,把創建的時候就設置成utf8(有點費勁),2、要不就是下面的解決辦法(也不是那么輕松,如果涉及的字段比較多的話),導出并修改sql語句,然后在重新執行sql語句。

四、解決辦法

把我們的數據庫導出為sql文件:

/*
SQLyog Enterprise v12.08 (64 bit)
MySQL - 5.7.31 : Database - data_test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!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 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`data_test` /*!40100 DEFAULT CHARACTER SET latin1*/;

USE `data_test`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) CHARACTER SET latin1 NOT NULL COMMENT '賬號',
  `password` varchar(50) CHARACTER SET latin1 NOT NULL COMMENT '密碼',
  `user_state` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '1' COMMENT '狀態,邏輯刪除',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;

/*Data for the table `user` */

LOCK TABLES `user` WRITE;

insert  into `user`(`user_id`,`user_name`,`password`,`user_state`) values (1,'keafmd','keafmd','1'),(3,'21312321','123','0'),(11,'213','213','1'),(12,'keafmd','666','0');

UNLOCK TABLES;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

就像上面說的一樣我們發現了latin1的身影,那么我們就把latin1全部替換為utf8。

替換后的sql文件:

/*
SQLyog Enterprise v12.08 (64 bit)
MySQL - 5.7.31 : Database - data_test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!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 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`data_test` /*!40100 DEFAULT CHARACTER SET utf8  */;

USE `data_test`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) CHARACTER SET utf8  NOT NULL COMMENT '賬號',
  `password` varchar(50) CHARACTER SET utf8  NOT NULL COMMENT '密碼',
  `user_state` varchar(10) CHARACTER SET utf8  NOT NULL DEFAULT '1' COMMENT '狀態,邏輯刪除',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

LOCK TABLES `user` WRITE;

insert  into `user`(`user_id`,`user_name`,`password`,`user_state`) values (1,'keafmd','keafmd','1'),(3,'21312321','123','0'),(11,'213','213','1'),(12,'keafmd','666','0');

UNLOCK TABLES;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

選擇執行sql腳本,選擇修改后的sql文件

此時再查看表信息

這樣就全部是utf8了,這樣基本上可以肯定解決問題了。

五、解決效果

測試驗證下是否真正的解決問題了:

到此這篇關于Mysql基礎之教你解決往數據庫中存入漢字報錯的方法的文章就介紹到這了,更多相關往數據庫存入漢字報錯的解決方法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 解決docker重啟redis,mysql數據丟失的問題
  • MySQL使用Replace操作時造成數據丟失的問題解決
  • 防止服務器宕機時MySQL數據丟失的幾種方案
  • MySQL Delete 刪數據后磁盤空間未釋放的原因
  • Python基礎之操作MySQL數據庫
  • django將圖片保存到mysql數據庫并展示在前端頁面的實現
  • MyBatis批量插入/修改/刪除MySql數據
  • 將圖片保存到mysql數據庫并展示在前端頁面的實現代碼
  • MySQL數據遷移相關總結
  • golang實現mysql數據庫事務的提交與回滾
  • MySQL安裝后默認自帶數據庫的作用詳解
  • MySQL 丟失數據的原因及解決

標簽:龍巖 麗水 迪慶 自貢 徐州 西寧 無錫 南充

巨人網絡通訊聲明:本文標題《教你解決往mysql數據庫中存入漢字報錯的方法》,本文關鍵詞  教你,解決,往,mysql,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《教你解決往mysql數據庫中存入漢字報錯的方法》相關的同類信息!
  • 本頁收集關于教你解決往mysql數據庫中存入漢字報錯的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 绍兴市| 扎赉特旗| 兴山县| 基隆市| 溧水县| 图木舒克市| 新和县| 兰州市| 西华县| 成都市| 清丰县| 宜章县| 伊金霍洛旗| 淅川县| 微山县| 汨罗市| 祁门县| 沂南县| 错那县| 定日县| 高淳县| 汝南县| 克拉玛依市| 余江县| 洮南市| 浦北县| 临夏县| 石阡县| 历史| 武强县| 海南省| 义乌市| 杭锦旗| 德令哈市| 渝北区| 玉山县| 甘肃省| 崇礼县| 涡阳县| 满洲里市| 古田县|