Пароль MySQL содержит '=' с ошибкой пароля при весенней загрузке

0

Я использую Spring boot в своем приложении, и у нас есть Azure Services для развертывания, а также для сервисов MySQL.

Я могу подключить MySQL к MySQL workbench, но он дает мне ошибку при развертывании приложения загрузки Spring, которое

Caused by: java.sql.SQLException: Access denied for user 'dev-admin'@'IP' (using password: YES)

Я предполагаю, что если мой пароль MySQL содержит '=' то он возникает при развертывании с Spring Boot, потому что я сменил пароль и удалил '=' и он работает.

Но это случайный сгенерированный пароль, и я не уверен, может ли пароль содержать "=" в будущем с другим развертыванием среды.

Я устанавливаю пароль MySQL в application.properties как это

spring.datasource.url=jdbc:mysql://hq-dev-xxx-westus-dbserver.mysql.database.azure.com:3306/xxx-dev
spring.datasource.username=dev-admin@dev-hq-westus-dbserver
spring.datasource.password=$AP=5ttfg{(=<WN

Поэтому мой вопрос: как назначить пароль с '='?

Теги:
spring-boot

1 ответ

1
Лучший ответ

Как вы можете знать, Properties Class - это файл с набором пар значений ключа.

поскольку Java обрабатывает первое вхождение = или: в качестве разделителя значения ключа вы можете поместить обратную косую черту escape() в свою строку.

Чтобы избежать ошибок, рекомендуется создать его программно так:

import java.io.IOException;
import java.util.Properties;

public class TestSO {

  public static void main(String args[]) throws IOException{

      Properties props = new Properties();
      props.setProperty("spring.datasource.password", "$AP=5ttfg{(=<WN");
      props.store(System.out, null);
  }
}

Это напечатает правильное присвоение свойства:

#Sat Jul 28 04:05:29 CLT 2018
spring.datasource.password=$AP\=5ttfg{(\=<WN //this line you have to put in your properties file
  • 1
    Я избежал символов '='. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню