我正在尝试使用 Flyway 迁移 MySQL 数据库,一切正常,只是我遇到了用“?”替换的西里尔符号的编码问题。符号。
\n\n我正在使用以下 Maven 插件。
\n\n<plugin>\n <groupId>org.flywaydb</groupId>\n <artifactId>flyway-maven-plugin</artifactId>\n <version>4.2.0</version>\n <configuration>\n <user>mysql</user>\n <password>password</password>\n <url>jdbc:mysql://192.168.1.6/schem2</url>\n <encoding>UTF-8</encoding>\n <schemas>\n <schema>schem2</schema>\n </schemas>\n </configuration>\n</plugin>\nRun Code Online (Sandbox Code Playgroud)\n\n在数据源 bean 中...
\n\njdbc:mysql://192.168.1.6/schem2?useUnicode=true&characterEncoding=UTF-8\nRun Code Online (Sandbox Code Playgroud)\n\n似乎到处都指定了编码。
\n\n脚本...
\n\n-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64) \n--\n-- Host: 192.168.1.6 Database: schem2\n-- ------------------------------------------------------\n-- Server version 5.5.50-MariaDB\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8 */;\n/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;\n/*!40103 SET TIME_ZONE='+00:00' */;\n/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;\n/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, \nFOREIGN_KEY_CHECKS=0 */;\n/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;\n/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;\n\n--\n-- Table structure for table `instbl`\n--\n\nDROP TABLE IF EXISTS `instbl`;\n/*!40101 SET @saved_cs_client = @@character_set_client */;\n/*!40101 SET character_set_client = utf8 */;\nCREATE TABLE `instbl` (\n `ID` int(11) NOT NULL AUTO_INCREMENT,\n `INN` varchar(12) DEFAULT NULL,\n `OGRN` varchar(13) DEFAULT NULL,\n `FULLNAME` varchar(255) DEFAULT NULL,\n `ADRESS` varchar(255) DEFAULT NULL,\n PRIMARY KEY (`ID`)\n ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;\n/*!40101 SET character_set_client = @saved_cs_client */;\n\n--\n-- Dumping data for table `instbl`\n--\n\nLOCK TABLES `instbl` WRITE;\n/*!40000 ALTER TABLE `instbl` DISABLE KEYS */;\nINSERT INTO `instbl` VALUES (1,'11111111111','10000000000','\xd0\xba\xd0\xbe\xd0\xbc\xd0\xbf\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f1','634 \n\xd0\xbf\xd1\x80.\xd0\x9b\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\xb4.1'),(2,'564441111111','1111','frfrf','wrfwerfw3'),\n(3,'4545454','4565662','\xd0\x9f\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xbe\xd0\xb5 \xd0\x98\xd0\xbc\xd1\x8f 1','\xd0\x90\xd0\xb4\xd1\x80\xd0\xb5\xd1\x81\xd1\x81 1');\n/*!40000 ALTER TABLE `instbl` ENABLE KEYS */;\nUNLOCK TABLES;\n /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;\n\n/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;\n/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;\n/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\nRun Code Online (Sandbox Code Playgroud)\n
我对土耳其字符也有同样的问题,它们都被转换为“?” 字符。正如@saw303所说,我修改了flyway.url
jdbc:mysql://192.168.11.7:3306/test_db?autoreconnect=true
Run Code Online (Sandbox Code Playgroud)
到
jdbc:mysql://192.168.11.7:3306/test_db?autoreconnect=true&useUnicode=true&characterEncoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
这次修改解决了这个问题。
| 归档时间: |
|
| 查看次数: |
4859 次 |
| 最近记录: |