Problemas encontrados quando o Mysql 8.0 usa Mybatis para se conectar ao banco de dados

Problemas encontrados quando o Mysql 8.0 usa Mybatis para se conectar ao banco de dados

<!-- mybatis主配置文件 -->
<configuration>
    <!-- 配置环境 -->
    <environments default="mysql">
        <!-- 配置mysql环境 -->
        <environment id="mysql">
            <!-- 配置事务类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(连接池) -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

Quando eu uso o arquivo de configuração Mybatis da versão Mysql5.X para configurar e executar o programa diretamente, o console me retorna diretamente esse erro:

### Error querying database.  Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

O objetivo desse erro é Communications link failureque a linha de comunicação está com defeito. Quando esse erro ocorre, significa que o Mybatis não está conectado ao banco de dados, então verifiquei a senha da conta e tentei conectar ao banco de dados com um software de gerenciamento de banco de dados de terceiros. O resultado é normal e o banco de dados pode ser conectado normalmente, então o problema do próprio banco de dados está descartado.

Após consultar as informações, urladicionei-as no final do endereço do link useSSL=true&allowPublicKeyRetrieval=true&serverTimezone=UTC, mas descobri que &esse símbolo na verdade era ilegal. Na verdade, este é o caso, &o símbolo não é suportado pelo arquivo xml, então precisamos substituí-lo &amp;.

Execute-o novamente e conecte-se com sucesso.

Por que ele pode ser executado normalmente após adicionar o código acima? O foco está nesta useSSL=trueparte.

useSSLUma função muito importante deste parâmetro é verificar ao conectar-se ao Mysql. Quando sua versão JDBC é consistente com o servidor Mysql atual ao qual você precisa se conectar, você não precisa abri-lo; e quando seu JDBC é inconsistente com o atual Servidor MySQL e incompatível Quando este parâmetro é adicionado, o banco de dados pode ser conectado com sucesso.

Acho que você gosta

Origin blog.csdn.net/Holmes_shuai/article/details/119395783
Recomendado
Clasificación