처음 서버 설정하면 비번이나 설정이 안되있으면 아래와 같이 쳐서 실행시킨다.
비번이 없으면 그냥 일단 Enter 친다.
1. 초기 root 패스워드 설정
mysql -u root -p
보안설정으로 바로 mysql로 접속할수 없어-u root 로 root로 접속-p로 비밀번호 입력한다.
비밀번호 변경
alter user 'root'@'loclhost' identified by '비밀번호';
alter user 'root'@'loclhost' identified by '비밀번호';
2. MySQL 데이터베이스 확인
MySQL에는 전체 DBMS를 관리하는 데이터베이스가 존재한다. 이 데이터베이스 이름이 mysql 이라한다.
mysql 데이터베이스는 root 관리자만이 사용할 수 있는 데이터베이스로 사용자와 DBMS 내에 생성될 모든 데이터베이스를 관리한다.
사용자계정을 추가하기 전에 먼저 현재 사용할 데이터베이스를 확인하거나 새로 생성하거나 하는 작업이 필요하다.
일단 있는 데이터베이스를 확인한다.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
그냥 mysql 계정을 사용하기로 했다. mysql 계정 선택한다.
mysql> use mysql;
현재 생성된 사용자계정을 확인한다.
mysql > select host, user, password from user;
3. 유저 생성
loclhost는 외부에서 접속할수 있는 권한이 분리되어 있다(loclhost는 mysql이 설치된 서버)
loclhost로 지정할 경우 mysql이 설치된 서버만 접속할 수 있다.(외부접근 안됨)
따라서 호스트를 %로 설정시 외부에서도 접속가능하다.
create user '사용자id'@'%' identified by '비밀번호';
create user 'insight'@'%' identified by 'gogogo';
4. 사용자에게 권한 부여
grant all privilieges는 사용자에게 모든 권한을 주는 것으로
grant all privilieges on *.* 란 모든 스키마의 모든 테이블에 모든 권한을 지정한다.
일부 권한만 주려면 grant select, insert, update on 스키마.테이블 로 쓰면 된다.
grant all privilieges on 스키마.테이블 to '사용자id'@'호스트';
grant all privilieges on *.* to '사용자id'@'%';
grant all privileges on *.* to 'insight'@'%' WITH GRANT OPTION;
5. 변경된 내용을 반영한다. 즉 권한을 적용합니다.
flush privileges;
6. 적용된 권한 확인
select user,host,authentication_string from user;
'Database > mysql' 카테고리의 다른 글
[mysql] 버전에 따른 패스워드 변경 (0) | 2023.04.21 |
---|---|
[mysql] centos에 mysql 글자셋 설정 (0) | 2023.04.18 |