昊鼎王五:编译安装MYSQL时需要的my.cnf长什么样?

本文介绍如何在三分钟内完成MySQL服务器的编译安装,包括所需的my.cnf配置文件示例及其作用。适用于希望自定义安装路径及规避系统默认配置限制的用户。

昊鼎王五:编译安装MYSQL时需要的my.cnf长什么样?

为什么要编译安装?为了安装路径自定义,不被系统默认配置限制。
如何在在3分钟内编译安装MYSQL服务器呢?答案就在下面:

#准备好材料
root@centos7-hd205:[/etc]cat my.cnf

[mysqld]
datadir=/hd205/mysqldb/data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
character_set_server=utf8
innodb_file_per_table=1
[client]
socket=/tmp/mysql.sock

注:如上my.conf是基于单机版的编译安装MYSQL服务器。可以说“so simple !”

如果想要安装MSYQL集群(主从、主主架构等等)的同学,可以参见《昊鼎王五:如何十分钟内在CentOS7上快速搭建集群mysql双主+keepavlied实现漂移、高可用服务之1:快速编译安装mysql》
https://blog.youkuaiyun.com/haoding205/article/details/81410199

还有其他问题的可以在评论区留言或者如下联系方式扫码向我提问。
在这里插入图片描述

### Java MySQL DataConversionException 'Cannot determine value type from string' 原因及解决方法 #### 异常原因分析 `com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string` 异常通常发生在数据库查询结果与 Java 对象之间的映射过程中,具体表现为 MyBatis 或 JDBC 无法正确将数据库中的字符串值转换为目标数据类型。以下是可能导致此异常的原因: 1. **SQL 查询返回的数据类型与 Java 属性类型不匹配** 如果 SQL 查询返回的列是字符串类型(如 `VARCHAR`),但 Java 实体类中对应的属性定义为数值类型(如 `int` 或 `long`),则会导致类型转换失败[^3]。 2. **数据库表结构定义错误** 数据库表中某列的实际数据类型可能与预期不符。例如,某列被定义为 `VARCHAR`,但 Java 实体类中将其映射为数值类型[^3]。 3. **MyBatis 自动映射问题** 在使用 MyBatis 的自动映射功能,如果实体类的字段名与数据库列名不一致,或者字段类型不匹配,可能会导致类型转换异常。此外,Lombok 注解(如 `@Builder`)可能生成与预期不同的构造器或方法,从而引发异常[^5]。 4. **自定义类型处理器(TypeHandler)问题** 如果在 MyBatis 中配置了自定义的 `TypeHandler`,但未正确处理某些特殊值(如空字符串或特定格式的字符串),也可能导致此异常[^4]。 --- #### 解决方法 以下是针对上述问题的具体解决措施: 1. **检查 SQL 查询返回的列类型** 确保 SQL 查询返回的列类型与 Java 实体类中的属性类型一致。例如,如果数据库列是字符串类型,则 Java 属性也应定义为 `String` 类型。可以通过以下方式验证: ```sql DESCRIBE your_table; ``` 如果发现类型不匹配,可以修改 SQL 查询或调整 Java 实体类的定义[^3]。 2. **确认数据库表结构定义** 检查数据库表中相关列的数据类型是否正确。例如,如果某列存储的是字符串值,则应确保其定义为 `VARCHAR` 或其他字符串类型。如果需要更改列类型,可以使用以下 SQL 语句: ```sql ALTER TABLE your_table MODIFY COLUMN your_column VARCHAR(255); ``` 3. **检查 Java 实体类定义** 确保 Java 实体类中字段的类型与数据库列的类型一致。例如,对于一个存储字符串的数据库列,Java 属性应定义为 `String` 类型: ```java private String avatar; // 确保字段类型为 String ``` 4. **调整 MyBatis 映射规则** 如果使用 MyBatis 的自动映射功能,可以通过显式指定字段映射关系来避免类型转换问题。例如,在 XML 映射文件中定义结果集映射: ```xml <resultMap id="UserResultMap" type="com.example.User"> <result column="avatar" property="avatar" javaType="String"/> </resultMap> ``` 5. **检查 Lombok 注解的影响** 如果使用了 Lombok 的 `@Builder` 注解,需确保生成的构造器或方法与 MyBatis 的映射规则兼容。必要,可以禁用 Lombok 的自动生成功能,并手动定义构造器或 getter/setter 方法[^5]。 6. **调试自定义 TypeHandler** 如果配置了自定义的 `TypeHandler`,需确保其能够正确处理所有可能的输入值。例如,对于空字符串或其他特殊值,应提供明确的转换逻辑[^4]。 --- ### 示例代码 以下是一个完整的示例,展示如何通过调整 SQL 查询和实体类定义来避免 `DataConversionException` 异常: ```java // Java 实体类定义 public class User { private String id; // 数据库中对应列为 VARCHAR 类型 private String name; // Getter 和 Setter 方法 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } // SQL 查询示例 SELECT id, name FROM users WHERE id = ?; // MyBatis XML 映射文件 <resultMap id="UserResultMap" type="com.example.User"> <result column="id" property="id" javaType="String"/> <result column="name" property="name" javaType="String"/> </resultMap> ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值