※ 연습하기
DB server 내부 정리 후 진행
D / B : dbtest
user : usertest
----- root 로그인 하여 진행 -----
----- usertest로 로그인 하여 진행 ------
table : tbtest
field : num, name, addr, phone
values : 3개 이상
show databases, select * from tbtest 로 확인
1. phone 컬럼이 10으로 나오는 이유 : 컬럼 데이터 타입은 int 형인데 insert로 넣어준 데이터 타입은 문자열 형식이다. 010-1111-1111 -> 중간에 ' - ' 는 연산 식으로 보기 때문에 처음 ' - ' 앞까지 입력 되고 뒤에는 다짤려서 보인다. 010 까지만 보이는데 정수형 데이터 타입에서 맨 앞의 '0'은 허용 안하기 때문에 10이라는 숫자만 보여진다. (형변환이 일어난다.)
-> 자료형을 변경해줘야 한다.
※ 필드를 추가하고 싶을 때 쓰는 명령어
alter table (테이블 명) (추가할 필드명) (데이터 타입) ( - first 옵션 : 첫번째 - after 필드명 : 해당 필드명 뒤) ;
-> 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 만 라틴어로 설정 되어 있다.
한글이 깨지는 것을 없애기 위해서는 위의 문자셋을 바꿔줘야 한다.
※ 이 데이터베이스는 방금 바꾼 설정을 적용 받기 전에 만든 db이기 때문에 따로 바꿔줘야한다.
※ 기존에 만들었던 테이블은 적용을 따로 안받기 때문에 명령어로 처리한다.
-> 기존의 테이블 한글 입력 : alter table (테이블 명) modify (필드명) (데이터타입) char set utf8;
- root 암호를 모르는 상태에서 root 로그인 후 암호 재설정
'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 |