미분류

aws mysql 연동

Machine_웅 2018. 7. 13. 17:43
728x90
반응형

설치 환경

AWS에 Ubuntu 14.04를 기반으로 인스턴스를 생성하고 sudo apt-get install mysql-server 명령으로 MySQL을 설치

  • 버전 - MySQL 5.5(5.5.41-0ubuntu0.14.04.1)

AWS - Security Group 설정

Inbound 탭에서 3306 포트를 열고 Source Anywhere(0.0.0.0)으로 설정

MySQL 설정 파일(/etc/mysql/my.cnf) 수정

bind-address 항목을 찾아서 0.0.0.0으로 변경(이전 값은 127.0.0.1)

MySQL 재시작

service mysql restart

ROOT 계정으로 외부에서 접속 가능하게 하려면

아래의 명령을 MySQL monitor에서 실행

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
Query OK, 0 rows affected (0.12 sec)

 

 

 

 

 

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

 

에러 발생시 .  ( 비밀번호 정책 위반이다   대소문자 1개 씩포함  + 특수문자 까지 넣어줫다 )

 

 

 

참고 :  mysql  비밀번호 변경

 

 

mysql 접속

$ mysql -u root -p
Enter password:

mysql database 선택

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

비밀번호 변경

검색을 해보면 update user set password=password('1234') where user='root'; 명령을 이용하면 된다고 나와있다.
그대로 복사해서 입력해보면

mysql>  update user set password=password('1111') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'

password field 를 찾을 수 없다는 에러 메세지가 출력된다.

확인해보기 위해 user table의 field 들을 출력해봤더니

mysql> describe user;
+------------------------+------------------------+------+-----+---------+-------+
| Field                  | Type                   | Null | Key | Default | Extra |
+------------------------+------------------------+------+-----+---------+-------+
| Host                   | char(60)               | NO   | PRI |         |       |
| User                   | char(32)               | NO   | PRI |         |       |
| ...                                                                            |
| authentication_string  | text                   | YES  |     | NULL    |       |
| password_expired       | enum('N','Y')          | NO   |     | N       |       |
| password_last_changed  | timestamp              | YES  |     | NULL    |       |
| password_lifetime      | smallint(5) unsigned   | YES  |     | NULL    |       |
| account_locked         | enum('N','Y')          | NO   |     | N       |       |
+------------------------+------------------------+------+-----+---------+-------+
45 rows in set (0.00 sec)

password field를 찾을 수 없었다. 대신 authentication_string 이라는 field가 존재한다.
위의 명령에서 password 대신 authentication_string을 업데이트하는 것으로 수정하여 실행하면 제대로 동작한다.

mysql> update user set authentication_string=password('1234') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

변경사항을 적용하기 위해 아래 명령을 실행한 후에 종료하면 비밀번호 변경이 완료된다.

mysql> flush privileges;
mysql> quit
Bye

728x90
반응형