쉽게 쉽게

리눅스로 DB 계정 생성 본문

서버/리눅스

리눅스로 DB 계정 생성

곱마2 2024. 1. 10. 22:43
반응형

1. 이슈

 리눅스를 통해 마리아DB 계정과 테이블을 만들어 사용해야 하는 상황이었다.

그래서 사용했던 리눅스 명령어와 DB연동 시 나타났던 오류들을 정리해 봤다.

 

2. 마리아 DB 계정생성

먼저 마리아DB에 접속을 해야 한다.

보통 mysql -u root -p로 접속할 수 있다.

 

이때 발생할 수 있는 mysql 명령어 오류

 

계정생성을 위해 mysql -u root -p 명령어로 생성한 DB에 root계정으로 접속할 것이다.

이때 "Error - bash: mysql: command not found" 이런 오류가 나타난다면 명령어의 경로를 환경변수로 지정해주지 않아서 그렇다.

 

[ 해결방법 ] 

1. 환경변수에 mysql 명령어를 추가하거나

https://ryean.tistory.com/5

 

[MySQL] Error - bash: mysql: command not found

"Error - bash: mysql: command not found" 위 오류는 mysql 명령어를 찾을 수 없을 때 발생하는 오류이다. 위 오류가 발생하는 이유는 명령어의 경로를 환경변수로 지정해주지 않아서 발생한다. ■ 해결방법

ryean.tistory.com

2. 마리아 db가 설치되어 있는 /usr/local/mysql/bin로 이동 후 ./mysql -u root -p 이라는 명령어로 실행하면 된다

    bin 폴더에는 mysql(또는 mariaDB) 명령어가 있기 때문에 직접 실행할 수 있다.

 

마리아DB에 접속 후 계정을 생성하면 된다.

DB가 없다면 DB도 생성하면 된다.

 

1. DB 확인

SHOW DATABASES;

 

2. DB 생성

CREATE DATABASE 데이터베이스명;

 

3. 계정 생성

CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호';

 

4. 권한 부여

GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '아이디'@'%';

--예시
grant all privileges on *.* to 'root'@'%' ;

--*.*는 모든 DB라는 뜻
--'%'는 모든 권한이라는 뜻

 

5. 새로고침

FLUSH PRIVILEGES;

 

https://velog.io/@chappse6/MariaDB-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%83%9D%EC%84%B1-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC

 

MariaDB 데이터베이스 생성, 계정 생성, 권한 부여

MySQL(MariaDB) 접속 mysql -u root -p/ 특정 포트를 지정하려면 (-P 포트번호) 추가데이터베이스 확인SHOW DATABASES;데이터베이스 생성CREATE DATABASE 데이터베이스명;아이디 생성CREATE USER '아이디'@'%' IDEN

velog.io

3. 오류

마리아DB 계정생성 후 발생했던 오류에 대해 정리해 봤다.

 

[비밀번호 오류]

이제는 mysql(또는 mariaDB) -u 사용자 -p 비밀번호를 통해 만든 계정으로 접속하면 되지만

아래와 같은 오류가 발생할 수 있다. 

 

1. ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: NO)

이는 사용자의 비밀번호가 없을 경우 나타나는 오류 문구

 

[해결 방법]

이를 해결하기 위해서는 비밀번호를 설정해주면 된다.

mysql(또는 mariaDB) -u 사용자 -p
Enter password : 비밀번호 입력

 

 

2. ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: YES)

사용자의 비밀번호가 틀렸을 경우 나타나는 오류 문구

 

[해결 방법]

이를 해결하기 위해서는 비밀번호를 변경해주면 된다.

use mysql
update user set password=password('비밀번호') where user='사용자'; // 비밀번호 변경
flush privileges; // 변경사항 적용(새로고침)

 

만약 비밀번호 변경 시

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

오류가 뜬다면, 이는 마리아DB 10.4 이후 버전에는 명령어 형태가 달라져서 그렇다.

SELECT VERSION(); 으로 버전을 확인해보고 아래와 같이 작성하면 변경이 될 것이다.

set password for 'root'@'localhost' = password('password');

 

 

https://passing-story.tistory.com/entry/MySQL-mysql%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%98%A4%EB%A5%98-mysql-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%EC%9E%AC%EC%84%A4%EC%A0%95

 

[MySQL] mysql로그인 오류 / mysql 비밀번호 재설정

[로그인 오류] 유형 1) ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: NO) - 사용자의 비밀번호가 없을 경우 나타나는 오류 문구, 아래 해결 방법에 있는 명령어들 중 하나를 선택해 입

passing-story.tistory.com

https://velog.io/@choo121600/MariaDB-10.4-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%EB%B3%80%EA%B2%BD-Access-denied-%EC%97%90%EB%9F%AC

 

MariaDB 10.4+ 비밀번호 변경 Access denied 에러

평화롭던 늦은 밤, 한동안 MySQL을 쓰다가오래간만에 mariaDB를 사용하려고 세팅했더니 이런 에러가 떴다.아!! 내가 root계정의 비밀번호를 지정해주지 않았었나?이거다 mariaDB의 비번을 지정해주면

velog.io

 

4. 점검

마리아DB 및 계정이 잘 설정이 되었는지 확인하는 방법을 정리해 봤다.

 

1. 접근 가능한 계정 정보를 조회

MariaDB [(none)]> SELECT host, user, password FROM mysql.user

 

필자는 root 계정에 grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';처럼 실행했었다.

이 뜻은 root 계정에 모든 IP 접근을 허용한다는 뜻으로 % 모두 접근이 가능하다는 것을 뜻한다.

 

2. mysql(mariadb) 프로세스가 실행 중인지 확인

# ps -ef | grep mysql
# ps -ef | grep mariadb 포트가 사용되고 있는지 확인(기본 포트 3306)

# netstat -ntap | grep LISTEN
# netstat -ntap | grep 3306 서비스 상태 확인

# service mariadb status
# service mysql status

# systemctl status mysql
# systemctl status mariadb

# systemctl restart mysql
# systemctl restart mariadb 마리아DB 재시작

 

https://veneas.tistory.com/entry/MySQL-MySQL-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D-%EB%B6%88%EA%B0%80%EB%8A%A5-%ED%98%84%EC%83%81-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%EC%A0%91%EA%B7%BC-%EA%B6%8C%ED%95%9C

 

[MySQL] MySQL 외부 접속 불가능 현상 해결 방법 (접근 권한)

목차 1. 증상 1.1. ERROR 1130 (HY000): Host 'Host IP' is not allowed to connect to this MariaDB server # mysql -u root -h HostIP -p --port 3306 Enter password: ******** ERROR 1130 (HY000): Host 'Host IP' is not allowed to connect to this MariaDB server

veneas.tistory.com

잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.

 

 

반응형

'서버 > 리눅스' 카테고리의 다른 글

리눅스 서버시간 확인 및 변경  (1) 2024.05.28
리눅스 명령어 정리  (4) 2024.03.17
리눅스  (1) 2023.04.25