部署confluence设置数据库这个步骤时,提示必须配置utf8 作为默认字符集

在linux(centos7.9)上部署confluence版本6.13.23对接数据库时,对应的mysql驱动使用是版本5.1.41,一直提示不正确的字符集,数据库版本是5.7.17,我看数据库设置的是utf8,请问如何解决呢

img

img

img

对于部署Confluence的MySQL数据库,需要确保设置默认字符集为utf8。这可以通过在创建或修改MySQL数据库时指定以下参数之一来完成:--default-character-set=utf8,如果还未创建MySQL数据库并且需要指定默认字符集,可以执行以下步骤:create database confluence default character set utf8 collate utf8_bin; 如果还不行的建议可以尝试检查一下下载的mysql驱动是否匹配。

在你的数据url后面指定编码试试
?useUnicode=true&characterEncoding=UTF-8

参考GPT:如果您的MySQL数据库已经设置为使用UTF-8字符集,但在连接Confluence时仍然出现不正确的字符集提示,那么可能是因为MySQL JDBC驱动程序未正确设置字符集。

在这种情况下,您可以尝试通过以下方式解决问题:

1 确认MySQL JDBC驱动程序已正确安装并配置
确保您的MySQL JDBC驱动程序已正确安装并配置。您可以通过检查Confluence的类路径来验证这一点,以确保MySQL驱动程序的JAR文件已包含在其中。

2 修改MySQL JDBC连接字符串
在连接MySQL数据库时,您可以尝试修改MySQL JDBC连接字符串以指定正确的字符集。例如,您可以在连接字符串中添加以下参数:

jdbc:mysql://localhost:3306/confluence?useUnicode=true&characterEncoding=utf8

这将强制MySQL使用UTF-8字符集来处理数据,并将数据从JDBC驱动程序发送到Confluence。
3 修改MySQL服务器的默认字符集
如果您的MySQL数据库已经设置为utf8字符集,但在配置Confluence时出现了字符集错误,则可能是因为MySQL默认使用utf8mb4字符集,而不是utf8字符集。因此,您需要在MySQL中设置默认字符集为utf8。

可以按照以下步骤更改MySQL的默认字符集为utf8:

1 打开MySQL配置文件my.cnf,通常可以在/etc/mysql/目录下找到此文件。

2 添加以下行到[mysqld]部分中:

[mysqld]
character-set-server=utf8

3 保存并关闭my.cnf文件。

4 重启MySQL服务。

5 登录到MySQL控制台,检查默认字符集是否已经更改为utf8:

mysql> SHOW VARIABLES LIKE 'character_set_server';

应该输出:

+----------------------+--------+
| Variable_name | Value |
+----------------------+--------+
| character_set_server | utf8 |
+----------------------+--------+

6 确认MySQL的默认字符集已经更改为utf8后,重新尝试在Confluence中配置数据库。

如果您已经在MySQL中创建了数据库和用户,可以确保在创建数据库和用户时使用utf8字符集:

CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';

请注意,如果您正在使用MySQL 8.0或更高版本,则默认字符集已更改为utf8mb4,因此您需要将其更改回utf8以避免字符集错误。

参考这个文章:https://www.cwiki.us/display/CONF6EN/Database+Setup+For+MySQL

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在部署Confluence时,需要设置MySQL的默认字符集为UTF-8,并且确保连接MySQL的JDBC驱动的URL中包含设置字符集的参数。以下是如何解决的步骤:

  1. 确保MySQL已经设置了默认字符集为UTF-8,可以使用如下命令查询:
mysql> show variables like 'character_set%';

如果没有设置,可以使用以下命令设置:

mysql> set character_set_client=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_connection=utf8;
  1. 确保JDBC驱动的URL中包含了设置字符集的参数,如下所示:
jdbc:mysql://localhost:3306/confluence?useUnicode=true&characterEncoding=utf8
  1. 如果在步骤2中的JDBC驱动的URL中已经包含了设置字符集的参数,但是仍然遇到了字符集不正确的问题,可以尝试将MySQL的配置文件/etc/my.cnf中的以下参数设置为UTF-8:
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
  1. 重启MySQL服务并重新连接到Confluence。

参考文献:

你的confluence这个库建的不对哟,要的是utf8你建立的是utf8mb4,这个两个不一样哟

问题分析:
在部署Confluence时,需要设置数据库并对接MySQL驱动。在这个过程中,出现了提示必须配置utf8作为默认字符集的问题。这个问题的原因可能是MySQL驱动版本与数据库版本不兼容,或者是数据库的字符集设置不正确。
解决方案:
1. 确认MySQL驱动版本与数据库版本兼容
首先,需要确认使用的MySQL驱动版本与数据库版本兼容。可以查看MySQL驱动的官方文档,找到对应的版本与数据库版本兼容的信息。如果不兼容,需要升级MySQL驱动或者降级数据库版本。
2. 确认数据库字符集设置正确
如果MySQL驱动版本与数据库版本兼容,那么需要确认数据库的字符集设置是否正确。可以通过以下步骤进行确认:
(1)登录MySQL数据库,执行以下命令查看当前字符集设置:

show variables like '%character%';

(2)确认字符集设置是否为utf8或utf8mb4。如果不是,需要修改字符集设置。可以通过以下命令修改字符集设置:

set character_set_server=utf8;

(3)重启MySQL服务,使修改生效。
3. 修改Confluence配置文件
如果MySQL驱动版本与数据库版本兼容,且数据库字符集设置正确,但仍然提示不正确的字符集,那么可能是Confluence配置文件中的字符集设置不正确。可以通过以下步骤进行修改:
(1)找到Confluence的安装目录,进入conf目录。
(2)打开server.xml文件,找到以下代码:

maxThreads=\"150\" minSpareThreads=\"25\" connectionTimeout=\"20000\" enableLookups=\"false\"
maxHttpHeaderSize=\"8192\" protocol=\"HTTP/1.1\" useBodyEncodingForURI=\"true\" redirectPort=\"8443\"
acceptCount=\"100\" disableUploadTimeout=\"true\" bindOnInit=\"false\" secure=\"false\"
scheme=\"http\" proxyName=\"localhost\" proxyPort=\"80\" />

(3)在Connector标签中添加以下代码:

URIEncoding=\"UTF-8\"

(4)保存文件并重启Confluence服务。
总结:
部署Confluence时,需要设置数据库并对接MySQL驱动。如果出现提示必须配置utf8作为默认字符集的问题,可能是MySQL驱动版本与数据库版本不兼容,或者是数据库的字符集设置不正确。可以通过确认MySQL驱动版本与数据库版本兼容、确认数据库字符集设置正确、修改Confluence配置文件等步骤进行解决。

如果您正在使用的MySQL数据库版本为5.7.17,并且在Confluence 6.13.23中使用MySQL驱动程序版本为5.1.41时遇到了“不正确的字符集”错误,则可能需要在Confluence配置文件中更改MySQL连接字符串的字符集设置。下面是一些可能的解决方案:

在MySQL连接字符串中设置正确的字符集
请尝试在Confluence的配置文件中的MySQL连接字符串中设置正确的字符集。您可以在Confluence的配置文件中找到该字符串,并在其中添加“characterEncoding”属性,如下所示:

bash
jdbc:mysql://localhost:3306/confluence?useUnicode=true&characterEncoding=UTF-8
请注意,上面的示例假定您正在使用UTF-8字符集。如果您的数据库使用其他字符集,请相应地更改“characterEncoding”属性的值。

在MySQL服务器上更改默认字符集
您还可以尝试在MySQL服务器上更改默认字符集。要执行此操作,请运行以下命令:

sql
mysql> SET GLOBAL character_set_server = utf8;
mysql> SET GLOBAL collation_server = utf8_general_ci;
请注意,上面的示例假定您正在使用UTF-8字符集。如果您的数据库使用其他字符集,请相应地更改这些命令中的值。

确认MySQL数据库已正确配置
请确保MySQL数据库已正确配置以使用正确的字符集。您可以在MySQL的my.cnf配置文件中设置字符集,如下所示:

sql
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
请注意,上面的示例假定您正在使用UTF-8字符集。如果您的数据库使用其他字符集,请相应地更改这些值。

总之,要解决“不正确的字符集”错误,您需要确保Confluence的MySQL连接字符串和MySQL服务器都已正确配置以使用正确的字符集。您可以尝试上面提供的解决方案,并根据需要进行更改。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^