我已经把mariadb作为pod部署到k8s集群中。db使用ssl模式启用,这将不允许用户/客户端在没有证书的情况下登录db。所以我们不能使用用户名和密码登录数据库。我们必须只使用证书才能这样做。
用户创建语句:
CREATE USER 'test'@'%' REQUIRE X509;
GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
所以我们在创建用户时不使用任何密码。
登录数据库:
mysql -utest --ssl-key=/keys/peer-key.pem --ssl-cert=/certificates/peer.pem --ssl-ca=/ca/cacerts.pem
因此,我尝试在mariadb上为spring boot应用程序端启用ssl模式,如下所示:
spring.datasource.url=jdbc:mariadb://IP:3306/myDB?useSSL=true&trustServerCertificate=true&serverSslCert=/certificates/peer.pem&disableSslHostnameVerification=true
spring.datasource.username=test
spring.datasource.password=
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
但我得到一个错误:
Current charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding'
版本:
mariadb: mysql Ver 15.1 Distrib 10.4.12-MariaDB, for Linux (x86_64) using readline 5.1
mariadb-java-client: 2.7.2
spring boot: 2.3.4
暂无答案!
目前还没有任何答案,快来回答吧!