我有 Spring 启动应用程序并部署到远程服务器。该应用程序在我的计算机上运行。MySQL连接URL,用户名和密码是相同的本地和远程MySQL。数据库和应用程序在同一台机器上!!
我检查了我的连接信息并执行了以下命令。
GRANT ALL PRIVILEGES ON burrda.* TO 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
我的application.properties
如下。
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL57Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/burrda
spring.datasource.username=root
spring.datasource.password= password
当应用程序运行时,我得到了java.sql.SQLException: Access denied for user 'root'@'localhost'
我没有收到这些异常java.sql.SQLException: Access denied for user 'root'@'localhost'
(使用密码:是(或java.sql.SQLException: Access denied for user 'root'@'localhost'
(使用密码:否(
我也遇到了同样的问题。
对我有用的解决方案
Create
新用户Grant
数据库的此新用户权限:
create user '<new_user_name>'@'localhost' identified by '<new_user_password>';
grant all privileges on <your_db_name>.* to '<new_user_name>'@'localhost' identified by '<new_user_password>';
从您的问题中不清楚,数据库是否在运行 Web 应用程序的同一台机器上运行?如果否,则需要在GRANT
命令中提供运行 Web 应用程序的远程计算机的 IP 地址。