2015-01-09 2 views
-1

MySQL은 내가이 구문을 시도SQL 구문 오류 MySQL의 -e --execute

mysql -uroot -proot -e "GRANT ALL ON `mydb`.* to 'myuser'@'%' identified by 'mypwd';" 

쉘 내 우분투에이 문을 사용할 때는 SQL 구문 오류가 나에게 말한다 :

mysql -uroot -proot -e "GRANT ALL ON `mydb`.* to '[email protected]%' identified by 'mypwd';" 

afaik 내가 거기 재미없는 숨겨진 문자가 내가 잘 작동하는 MySQL 클라이언트 내에서 문을 실행할 때 거기에. 내가 누락 된 것이 있습니까?

예를 들어, 오류 메시지

라인 1에서 ERROR 1064 (42000)

: 당신은 당신의 SQL 구문에 오류가 있습니다; 올바른 구문을 찾으려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. '*' 'myuser'@ '%'는 'mypwd'로 식별됩니다.

답변

0

이 문제를 발견했습니다. 데이터베이스 이름을 이스케이프하는 데 사용되는 문자가 구문 오류를 담당합니다. 이 문장이 없으면 제대로 작동합니다.

mysql -uroot -proot -e "GRANT ALL ON mydb.* to '[email protected]%' identified by 'mypwd';" 

쉘 명령에 대해서는 거의 알지 못하지만 "`"문자는 재미있는 일을합니다. 어쩌면 더 많은 경험을 가진 사람이 설명하는 데 신경을 쓸 수 있습니다. (- : 그리고 그러한 오류를 예방하기 위해 어떻게 도피 할 수 있습니까?