본문 바로가기

Linux/CentOS

DB server 2

 

※ 연습하기

 

DB server 내부 정리 후 진행

 

D / B      : dbtest

 

user       : usertest

 

----- root 로그인 하여 진행 -----

 

----- usertest로 로그인 하여 진행 ------

 

table    :   tbtest

 

field     :  num,   name,  addr, phone

 

values   :  3개 이상

 

 

show databases, select * from tbtest 로 확인

 

 

데몬 재실행 후 mariadb 접속

 

이전에 생성했던 db 삭제

 

이전에 생성한 유저 삭제

 

로컬호스트에서 접속할 수 있는 사용자 유저 테스트 만들어주기

 

유저테스트가 사용할 수 있는 db와 권한 설정

 

데몬 재실행

 

usertest 계정 아이디로 dbtest db 사용하겠다는 로그인

 

tbtest table 조건에 맞게 생성
value 삽입
, 로 묶어서 여러 values들을 넣는 형식도 가능하다.

 

select 질의문으로 확인

 

1. phone 컬럼이 10으로 나오는 이유 : 컬럼 데이터 타입은 int 형인데 insert로 넣어준 데이터 타입은 문자열 형식이다. 010-1111-1111 -> 중간에 ' - ' 는 연산 식으로 보기 때문에 처음 ' - ' 앞까지 입력 되고 뒤에는 다짤려서 보인다.  010 까지만 보이는데 정수형 데이터 타입에서 맨 앞의 '0'은 허용 안하기 때문에 10이라는 숫자만 보여진다. (형변환이 일어난다.)

 

-> 자료형을 변경해줘야 한다. 

 

alter 명령어 사용

 

변경 확인

 

update 문을 이용하여 데이터 갱신해주기

※ 필드를 추가하고 싶을 때 쓰는 명령어 

 

 

alter table (테이블 명) (추가할 필드명) (데이터 타입) ( - first 옵션 : 첫번째 - after 필드명 : 해당 필드명 뒤) ; 

 

after 명령으로 name 뒤에 추가되었다.
추가된 필드명은 NULL 값이 들어가 있다.
추가된 필드는 update로 데이터 삽입이 가능하다.

-> alter 명령어에 change 옵션을 써서 필드 명을 변경 

 

-> alter 명령어에 drop 옵션을 써서 필드 삭제 

 

 

 

 

2. 한글 데이터가 '?'로 깨지는 현상 

 

use mysql; 명령어 실행

 

※ 혹시나 아래와 같은 에러 메세지가 뜬다면 mysql 데이터베이스에 대한 권한이 없기 때문이다. 

ERROR 1044 (42000): Access denied for user 'usertest'@'localhost' to database 'mysql'

 

root 계정으로 접속하고 아래와 같이 명령어 실행 후 시도한다. 

변경이 잘 되는 것을 확인

 

show variables : 여러가지 변수들을 확인하는 명령어 

 

 

character_set_database, server와 collation_database , server 만 라틴어로 설정 되어 있다. 

 

 

한글이 깨지는 것을 없애기 위해서는 위의 문자셋을 바꿔줘야 한다. 

 

나와서 vi로 my.cnf 파일 열기

 

 

해당 옵션 두줄 추가 해주기

 

설정을 건드렸으니 데몬 재실행 해서 적용한 후 root 계정으로 접속한다.

 

 

character와 collation 변경 적용된 것을 확인

 

 

dbtest로 데이터베이스 변경 후 status; 입력 db쪽 latin1 변경해준다.

 

※ 이 데이터베이스는 방금 바꾼 설정을 적용 받기 전에 만든 db이기 때문에 따로 바꿔줘야한다. 

 

alter로 변경한 후 commit 명령어까지 실행한다.
변경 확인 -> 변경이 되었기 때문에 이 db 안에 테이블들은 전부 한글 지원이 가능하다.

 

※ 기존에 만들었던 테이블은 적용을 따로 안받기 때문에 명령어로 처리한다. 

 

 

-> 기존의 테이블 한글 입력 : alter table (테이블 명) modify (필드명)  (데이터타입) char set utf8; 

 

 

한글이 잘 입력된다.

 

 

- root 암호를 모르는 상태에서 root 로그인 후 암호 재설정

 

 

해당 명령어 입력 하면 암호 없이 로그인 가능하다.

 

접속한 후에 비밀번호 설정하고 flush 까지 해주면 다시 암호 설정 완료

 

데몬 재실행 했더니 오류 발생

 

프로세스가 꺼졌어야 하는데 안꺼지고 있었기 때문에 실행이 안되고 있었다.
프로세스 종료하니 데몬 재실행 잘된다.

 

'Linux > CentOS' 카테고리의 다른 글

DB server 4  (0) 2022.09.01
DB server 3  (0) 2022.09.01
DB server  (0) 2022.08.31
WEB 2  (0) 2022.08.30
WEB  (0) 2022.08.30