전 글에서 centos 에 mysql 5.7버전을 설치하는 글을 작성했다.
이제 윈도우에서 mysql workbench 로 centos 에 깔려있는 mysql 서버에 접속하려고 한다.
$ sudo mysql -u root -p
$ 비번입력
이제 정삭적으로 mysql client 접속이 됐을 것이다.
$ mysql > use mysql;
$ mysql > show tables;
...
user
...
show tables;
를 입력하면 테이블이 짜르륵 뜨는데 그 중 user 테이블을 조회할 것이다.
$ mysql > select host,user from user
그러면 사진과 같이 데이터가 조회가 되는데, host
를 보면 localhost 로 돼 있을 것이다. 이는 해당 user 가 localhost 에서만 접속할 수 있다는 뜻이니 변경을 해줘야 한다.
$ mysql > grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';
*.*
는 모든 db 접근이고, '%'
는 모든 ip 에 대해 허용한다는 뜻이다. 특정 ip 에만 접근할 수 있도록 설정할 수도 있다.
그리고 적용을 하기 위해 다음과 같은 명령어를 입력한다.
$ mysql > flush privileges;
성공적으로 변경이 됐다면 다시 한 번 확인을 해본다.
$ mysql > select host,user from user;
이제 사진과 같은 row 가 하나 추가될 것이다.
어! 근데 root 가 2개인데요? 할 수도 있는데 검색해보면 스택오버플로우에서 잘 설명을 해준다. (참고링크 : https://dba.stackexchange.com/questions/59412/multiple-root-users-in-mysql)
| root | % | - This is the root user from any computer
| root | 127.0.0.1 | - This is the root user for localhost without resolved IP for IPv4
| root | ::1 | - This is the root user for localhost without resolved IP for IPv6
| root | localhost | - This is the root user for localhost with resolved IP
| root | mysrverhostname | - This is the root user if you connect from the localhost to its externel IP.
어쨌든 별 상관 없으니 패스
이제 mysql config 파일에서 bind-address
가 default 로 로컬만 접속될 수 있게 설정이 돼 있을 수도 있으니 주석을 달으러 가자.
$ mysql > exit
$ sudo vi /etc/my.conf
...
~~
...
그런데 필자는 bind-address
관련 내용이 없어서 그냥 내비뒀다. 만약 존재한다면 주석을 달아주도록 하자.
그리고 mysql 서비스를 한 번 restart 시켜주자.
$ systemctl restart mysqld
그리고 mysql port 를 열어주러 가자.
$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
이제 centos 에서 해줄 설정들은 모두 완료됐다.
workbench 접속하기
mysql workbench 를 켜고 connection 을 추가해주자.
주의할 점은 형관팬으로 쫙 밑줄 그었다.
그러면 성공!