차근차근/SQL

mysql 8 / mysql5 외부접속

예쁜꽃이피었으면 2018. 5. 18. 16:22



새로 호스팅하고 

mysql8을 설치했다.


외부에서 접속이 안되서 설정을 변경하려는데...

비밀번호 암호화 문제 때문인지.. 하루 종일 해결을 하지 못했다.



1. create user 'user'@'%';    //user = 사용할 계정

2. GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';

3. select password('암호');

4. update mysql.user set password ='' where user ='user' and host = '%';

5. update mysql.user set plugin ='mysql_oid_password' where user ='user' and host = '%';

6. flush privileges;


이건 어떤 분이 올려주신.. 해결책인데 8에서는 사용할 수가 없었다.

왜냐면 password 함수가 없다.


mysql 8 의 매뉴얼

https://dev.mysql.com/doc/refman/8.0/en/


//password8.1에서는 사라진 함수..

select password('암호');


//계정 검색 // 비밀번호의 칼럼명이 변경됨. password - > authentication_string

SELECT user,host,authentication_string FROM mysql.user;


//계정삭제

DROP USER 'root'@'%'; 



//비밀번호 변경

SET PASSWORD FOR 'root'@'%' = '비밀번호';



시간이 없어서 그냥 
5.7로 설치해야 겠다.
8을 볼 여력이 안돼


https://dev.mysql.com/downloads/windows/installer/


mysql-installer-community-5.7.22.1.msi 





스키마랑 테이블 생성 후에 외부에서 접속하려고 했는데 
안됐다. 처음에 설정 필요하다고 함. 


1. mysql 유저 확인 + 비밀번호도 확인

 SELECT user,host,authentication_string FROM mysql.user;


 2. 사용할 계정 생성  (나는 모든 ip에서 접속가능하게 할거라서 '%'로 설정함 )

 create user 'root'@'%';

 

 3. root계정에게 모든 권한을 줌 

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

 

 4. 1번에서 확인한 root의 비밀번호를  'root'@'%' 에서 사용할 거다. 

 update mysql.user set authentication_string ='암호화된 비밀번호' where user ='root' and host = '%';

 update mysql.user set plugin ='암호화된 비밀번호' where user ='root' and host = '%'; <- 플러그인도 수정해야 하나.. 잘 몰라서 일단 안 함

 select password('비밀번호') as pw; -> 이렇게 암호화해서 넣어도 됨.

 5. 수정한 것 반영 (필수)

  flush privileges;



반응형

'차근차근 > SQL' 카테고리의 다른 글

[hackerrank] Occupations  (0) 2022.08.18
[hackerrank] Employee Names  (0) 2022.08.09
mysql 데이터 베이스 생성  (0) 2018.02.08
mysql 한글 깨질 때  (0) 2017.10.16
Found option without preceding group in config file  (0) 2017.06.13