System/OS

[mysql] mysql user 생성시 ERROR 1364

by hooni posted Apr 25, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
MySQL에서 insert 구문을 통해 user 계정 생성 시 다음과 같은 오류가 생기는 경우.
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

Mysql 버전이 높아지면서 보안관련하여 필수항목으로 추가된 컬럼이 누락됐다는 오류이다.
User 생성시 Host, User ,Password, ssl_cipher, x509_issuer, x509_subject 를 입력 해 주어야 한다.
ssl_cipher, x509_issuer, x509_subject 값은 '' 빈값을 입력하면 된다.
mysql> insert into user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject )
-> values('localhost','사용자명',password('비밀번호'),'','','');


MySQL 특정 버전에서 이런 오류가 생기는 경우 
ERROR 1364 (HY000): Field 'authentication_string' doesn't have a default value

MySQL 5.5 버전에서 user 생성시 authentication_string 필드를 추가해야 한다.
특별한 값이 지정되어 있지 않으면 빈 값('')으로 주면 된다.
insert into user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_string)
-> values('localhost','사용자명', password('비밀번호'),'','','','');

그리고 Password 필드가 없고 authentication_string 필드가 있을 경우,
authentication_string 필드가 Password 필드를 대체하도록 작성하면 된다.
insert into user (Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject)
-> values('localhost','사용자명', password('비밀번호'),'','','');



[출처] http://blog.naver.com/taiji567?Redirect=Log&logNo=122081014