newlec MySQL
MySQL
- 터미널접속하기 : 시작 > mysql >
MySQL 8.0 Command Line Client
show databases
DB목록 조회- 설치후 service.msc에서 MySQL80 (default) 로 서비스목록에 있는 것을 확인할 수 있다
- 마스터db는
mysql
이다. (사용자계정 등) - sakila, world 는 sample db (공부용)
use {DB명}
해당 db 사용show tables
생략create database[또는 schema] {db명} default character set utf8
create user '{사용자id}' identified by '{비번}'
%를 생략하면 %로 됨 (외부 접근 허용)grant all privileges on {테이블명}.* to {유저명}
- 테이블만들기 > database탭 > reverse engineer
- 큰 자료형 :
TEXT
그외 메모한 것
select @@autocommit
autocommit 여부 조회 (1 사용, 0 미사용)set autocommit = {0|1}
셋팅mysql 재시작
- 종료 :
mysqladmin -uroot -p shutdown
- 시작:
mysqld
- 위 명령어보다는 서비스 > MySQL80 을 재시작하자
- 종료 :
mysql 터미널 접속 :
mysql -u root -p
- 이후에 비번 입력할 것
윈도우에 DB설치시 my.ini 위치 확인하기
- 리눅스에서는 my.conf, 윈도우에서는 my.conf 이다
show variables where variable_name like "%dir";
datadir
항목 확인- 필자의 경우
C:\ProgramData\MySQL\MySQL Server 8.0\Data\
에 위치하였다
- 필자의 경우
외부에서 접근 가능하게 하기
my.ini
파일을 열어서bind-address={private ip address}
로 기입하자- 루프백 주소는 접근이 안된다 !
- 수정후 MySQL을 재시작해야 한다
위 디렉터리는 보안관련 접근이 제한된다
- 윈도 관리자 권한 수정
netplwiz
- 위 방법으로도 안되기에.. 바탕화면에 파일을 복사하여 수정하고 원 디렉터리에 넣는 방식으로 해결하였다
- 윈도 관리자 권한 수정
외부에서 접근하기
mysql -h 192.168.56.1 -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'DESKTOP-6N1GO2A' (using password: YES)
여전히 안된다..
!! 드디어 되었다
원인은 루트 계정이 '%'
가 아니었기 때문…
- 마지막 관문이 완성되었다
- 리눅스 배포 + 게스트 호스트 mysql 접근 확인 + 스케쥴링 확인
- 게스트 : vmware의 내부 os
- 호스트 : vmware 밖의 내 os
- 리눅스 배포 + 게스트 호스트 mysql 접근 확인 + 스케쥴링 확인
참고: https://idchowto.com/?p=11068
테이블 생성
본 강의 내용은 굉장히 텍스트로 옮기기 힘들기에… 강의 링크만 붙이겠습니다.
ReverseEngineering을 통해서 뒷단에서 작업후
Forward-를 통해서 앞으로 가져올 수 있다
Notice 테이블 생성 스크립트
CREATE TABLE IF NOT EXISTS `newlecture`.`notice` (
`id` INT NOT NULL,
`title` VARCHAR(45) NOT NULL,
`content` TEXT NULL,
`regdate` DATETIME NULL,
`hit` INT NULL DEFAULT 0,
`pub` BIT NULL DEFAULT FALSE,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
테이블 이름을 아무리 부분 대문자로 바꾸려 해도 되지 않음
- lower_case_table_names=1 을 바꾸어도 마찬가지이다
- 이유는 유닉스기반 파일시스템과 달리 윈도우에서는 대소문자를 구분하지 않기 때문