[번역] MySQL 5.7.6 릴리즈. 큰 변화에 준비하자.

이 글은 “MySQL 5.7.6 is out. Be prepared for big changes” 를 원작자의 허락을 받아 번역한 것입니다. 원본은 아래의 주소에 있습니다. 번역을 허락해준 Giuseppe Maxia 씨에게 감사 합니다.

오늘 오라클(Oracle)이 MySQL 5.7.6 마일스톤 16을 릴리즈(Release) 했다. 이것으로 MysQL 5.7 은 개발에 2년이 넘게 소요됐다. MySQL 5.6과 비교해 바뀐점은 아주 넓다. 주요한 팀(개발 팀)의 노력은 이전 릴리즈와 비교해 2배에서 3배의 성능 향상을 가지는 , MySQL 의 동작,스피드에 포커스를 맞춰왔다. 무엇이 새로운지에 대한 전체 리스트는 여기에 가지고 오기에는 너무나 많은 공간이 필요해, 나는 몇가지 키포인트들만 언급할 것이다.

  • 오라클은 MySQL 보안과 안전성 개선에 상당히 많은 에너지를 소비했다. 많은 새로운 기능을 볼수 있겠지만 아주 오래된 기능들은 deprecated 되었고 5.6에서 deprecated 된것들은 삭제되었다.
  • 설치과정은 MySQL 5.7 릴리즈되는 매 마일스톤마다 항상 좀 더 향상되는 것을 목표로 바뀌어왔다.하지만 이러한 노력은 이전버전과의 호환성을 깰 것이다.

이 기사에서는 나는 설치과정에서 크게 바뀐 부분을 언급할 것이다. MySQL 5.6 에서 mysql_install_db 는 데이터베이스 생성중에 랜덤 패스워드 생성기에 대한 옵션을 가지고 있다. 이 과정은 익숙하지 않지만 오랜시간동안 패스워드없이 root 사용자를 생성하도록 했던것을 직접적으로 끝장을 내는 행보였다. MySQL 5.7.4 에서, 그것은 좀더 바뀌어서, 랜덤 패스워드 생성기는 -skip-random-password 옵션으로 건너뛸 수 있지만 어쨌든 기본값이 됐다. MySQL 5.7.5 에서, 기본은 확정되었고 옵션은 -insecure 로 바뀌었다.

그리고 이제, MySQL 5.7.6 에서, 오래된 관행을 단속하고자: mysql_install_db 는 deprecated 됐고 mysqld -initalize 로 바뀌었다. (예전에 “mysqld -bootstrap” 으로 알려졌던 것은 현재 deprecated 됐다)

여기서 테스트 해보자:

이전 버전과 비교해, 가장 주목할 차이는 .mysql_secret 파일이 없다는 것이고 스크린에 임시 패스워드가 짧은 줄로 언급된다. 또, 한가지 더 중요한 행동상의 차이점으로 이 명령어는 오직 한번만 작동한다. 만약 데이터 디렉토리가 존재한다면, 그 스크립트는 데이터 생성 명령어들을 다시 적용할려고 할 것이다. mysqld -initialize 사용은 데이터 디렉토리가 존재하지 않을때에만 실행된다.

새롭게 생성된 데이터베이스 사용을 위해서는 이전과는 다른 꼼수가 있다.

우잉? 이게 뭘까? 이 명령어는 최근까지 잘 동작했다. 원인은 SET PASSWORD 문법이 변경되었는데 이제는 생자 텍스트를 인수로 받는다.

오래된 문법은 오직 deprecated 되었다는걸 뜻하지만 이것은 순간적으로 완벽하게 제거될 수 있다. 이것은 MySQL 5.7.7 에서 고쳐지길 희망한다. (뭔소리냐.. ㅡㅡ;;)

더 많은 변화는 GRANT, REVOKE, CREATE USER, 그리고 ALTER USER 사용에서 일어났는데 현재 좀 더 제한적이다. 만약 GRANT 명령어로 사용자들을 생성하려고 한다거나 승인권한을 인증옵션과 섞으려고할때에 경고 메시지를 받을 수 있다.

요컨대, 만약 MySQL을 설치하고 관리하는 자동화된 스크립트를 가지고 있다면, 당신은 waringins 을 활성화하고 테스트해야 한다, 오래된 관습을 가지는 호환성이 깨지는것에 대비해야 한다.

One such ‘old practice’ scripts that is broken by the new syntax changes is MySQL-Sandbox. I have just released an updated version (MySQL Sandbox 3.0.48) with a workaround for MySQL 5.7.6 changed SET PASSWORD syntax.

BTW, mysql.user 테이블에 password 필드가 삭제되었다고 말했나요? 이것은 많은 테스트를 멈추게하는 또 다른 놀라운 점이다.

 

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">