2014-10-29 4 views
0

Я пытаюсь создать учетную запись для пользователя в MySql от JdbcTemplate с методом обновления. мой запрос идет как этотКак создать пользователя в MySQL из JdbcTemplate?

String sqlStatement = "CREATE USER [email protected]? IDENTIFIED BY ?"; 
Object[] values = new Object[3]; 
- 
-- 

я положить требуемого значения Value [], такие как имя пользователя, локальный и пароль. И я уверен, что я помещаю ценности в ценности [].

Я выполнение этого запроса в

jdbcTemplate.update(sqlStatement, values); 

Это дает мне эту ошибку ошибки.


org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [CREATE USER [email protected]? IDENTIFIED BY ?]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation 
     at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:95) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980) ~[spring-jdbc-4.0.3.RELEASE.jar:4.0.3.RELEASE] 

Я был предоставить все разрешения на пользователя, которого я с помощью в connection.For подтверждения От верстаке я могу создавать пользователей с той же командой.

В моей связи URL Я использую ПК IP-адрес, как это: jdbc:mysql://10.35.34.169:3306/mydb

+0

Вы помещали одинарные кавычки вокруг значений? в противном случае попробуйте «СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ»? »@?? ИДЕНТИФИЦИРОВАНО «?»; – CharlieS

+0

Я думаю, что это обрабатывается JdbcTemplate. – InvincibleWolf

+0

действительно, однако, краткий обзор спецификации говорит мне, что вы должны отправлять что-то более похожее на jdbcTemplate.update (sqlStatement, user, host, pw) – CharlieS

ответ

1

Я думаю, вместо того, чтобы использовать jdbcTemplate.update (...), используйте jdbcTemplate.execute (...) и передать строку SQL а

CREATE USER abdul123, идентифицированной '' abdul123

я, е

jdbcTemplate.execute("CREATE USER abdul123 IDENTIFIED BY 'abdul123'"); 
Смежные вопросы