목록mysql (11)
삶 가운데 남긴 기록 AACII.TISTORY.COM
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 여기서는 JDK11을 기준으로 합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. (윈도우 경로 기준) -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코..
MySQL 8 이상 MySQL 8은 기본 character set 과 collation 이 utf8mb4와 utf8mb4_0900_ai_ci 이므로 별도 utf8설정이 필요하지 않습니다. MySQL의 utf8은 3byte 문자 밖에 표시하지 못하므로 utf8mb4 즉, 4byte 인코딩을 사용할 것을 권장합니다. (MySQL 5.5.3 이상 필요) MySQL 5.7 MySQL 5.7 이하는 명시적으로 설정하지 않으면 latin1 이 기본 캐릭터 셋입니다. mysql 콘솔에 접속 후 mysql -u root -p status으로 server characterset 등을 확인할 수 있습니다. status; Charaterset 설정 CentOS 설정 파일: /etc/my.cnf Ubuntu 설정 파일: /e..
서버 설치 및 세팅 CentOS 7 설치 CentOS 설치 vmware 가상 머신 생성 CentOS 소개 실무에서 많이 쓰는 리눅스 중에서 red hat 리눅스가 있습니다. 그 red hat 리눅스와 사실상 동일하다고 할수 있는 CentOS 운영체제라는 것이 있습니다. 그런데 red hat에 blog.aacii.net SSH 포트 변경 리눅스 SSH 포트 변경 보안을 위해 SSH 포트를 변경 할 수 있습니다. 1. 먼저 vi 에디터로 설정 파일을 편집합니다. #vi /etc/ssh/sshd_config 2. 주석제거 및 포트 변경 #Port 22 으로 되어 있는 부분을 주석 # 기호를 제거 한 후에 blog.aacii.net RSA 공개키/개인키로 Putty를 이용한 SSH 접속 RSA 공개키/개인키로 ..
원본 테이블 구조(스키마)와 같은 새 테이블 생성 CREATE TABLE IF NOT EXISTS 타겟DB.복사테이블 LIKE 원본DB.원본테이블; 원본 테이블에 Primary Key 또는 auto_increment가 설정되어 있으면 복사할 수 없습니다. 원본 테이블 구조(스키마)와 같은 새 테이블을 생성 후 데이터도 함께 복사 CREATE TABLE IF NOT EXISTS 타겟DB.복사테이블 SELECT * FROM 원본DB.원본테이블; 원본 테이블에 Primary Key 또는 auto_increment가 설정되어 있으면 복사할 수 없습니다. 테이블을 생성했던 CREATE 쿼리 보기 SHOW CREATE TABLE 원본DB.테이블이름; Primary Key나 auto_increment 등 제약사항도 ..
리눅스 개발서버에서 MySQL 5.X 사용중에 디스크 용량 부족 메시지가 나오길래 우선 디스크 용량을 조사해 보았습니다. df -h 과연 루트 파티션의 용량이 꽉차 있었습니다. 그래서... 원인을 찾기 위해 좀더 조사해보았습니다. du -h 여러분의 실제 경로는 다를 수 있습니다만 /var/lib/mysql/ibtmp1 용량을 잡아먹던 범인은 바로 이 ibtmp1 파일이었습니다. 무한정 커지고 있더군요. 문제 해결은 단순히 MySQL를 재시작하는 것이었습니다. 리눅스 콘솔에서 아래와 같이 재시작 합니다. systemctl restart mysqld MySQL Temporary Tablespace 사용자가 생성한 임시 테이블들이 shared temporary tablespace 에 생성됩니다. 아무것도 설..
에러 메시지 Host 'IP주소' is not allowed to connect to this MySQL server 라고 나오면서 mysql에 원격 접속이 안 되는 경우 로컬 접속 mysql -u root -p 확인 쿼리 실행 mysql> SELECT HOST,USER FROM mysql.user; 접속 아이피 설정 -- 모든 IP 허용 하는 경우 GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드'; -- IP 대역(192.168.0.xxx)으로 허용하는 경우 GRANT ALL PRIVILEGES ON *.* TO '아이디'@'192.168.0.%' IDENTIFIED BY '패스워드'; -- 특정 아이피 1개(192.168.0.100)을 허용..
MYSQL 에서 VARCHAR 형식으로 데이터는 YYYY-MM-DD 같이 저장되어 있을 때 비교 연산자를 사용하면 오류가 생길 수 있습니다. 그럴 때 필요한 함수가 DATE_FORMAT() 과 STR_TO_DATE() 입니다. 1. 컬럼이 VARCHAR 형식일 때 SELECT * FROM TBL_BOARD WHERE DATE
MySQL 콘솔 접속 mysql -u root -p :루트 패스워드 입력 데이터베이스(DB) 확인 show databases; 사용자(user) 확인 select * from mysql.user; tester 계정 추가 create user 'tester'@'localhost' identified by 'testerpw'; -- localhost에서만 접속 가능한 아이디:tester 패스워드: testerpw 으로 계정 생성 create user 'tester'@'%' identified by 'testerpw'; -- 모든 아이피에서 접속 가능하도록 아이디:tester 패스워드: testerpw 으로 계정 생성 create user 'tester'@'192.168.0.100' identified by ..
MySQL Event Scheduler MySQL 5.1 부터 자바의 Quartz나 리눅스의 Crontab 처럼 이벤트 스케줄러를 통해 배치작업을 할 수 있게 되었습니다. 아래의 작업들은 콘솔에서 root 계정으로 접속하여 작업하는 것을 추천드립니다. mysql -u root -p 이벤트 스케줄러 상태 확인 SHOW VARIABLES LIKE 'event%'; 이벤트 스케줄러 ON/OFF SET GLOBAL event_scheduler = ON; SET GLOBAL event_scheduler = OFF; 만약 event_schedule 변경중에 에러코드 1227 이 나오는 경우 mysql을 root 권한으로 접속 후 다음을 실행하십시오. UPDATE mysql.user set Super_Priv='Y'..
MySQL 계정정보 DB name: testdb 테이블: testtable 사용자계정: testuser 패스워드: 1234 으로 가정하겠습니다. DB 백업 mysqldump -u testuser -p testdb > backup.sql password: 1234 DB 복원 mysql -u testuser -p testdb backuptable.sql password: 1234 테이블 복원 mysql -u testuser -p testdb < backuptable.sql password: 1234
특정 테이블의 내용으로 테이블을 업데이트할 때가 있습니다. 이럴 때 join 을 이용하여 update 할 수 있습니다. UPDATE 업데이트할테이블명 AS A INNER JOIN 데이터를가져올테이블명 AS B ON A.조인키 = B.조인키 SETA.업데이트할컬럼 = B.가져올데이터컬럼 WHERE 절 예제) 테이블(TBL__WRK)에 수정 일자(MODDATE)가 null 인 행들만 등록일자(REGDATE)로 업데이트 UPDATE TBL_WRK AS A INNER JOIN TBL_WRK AS B ON A.WRKID = B.WRKID SET A.MODDATE = B.REGDATE WHERE A.MODDATE IS NULL 테이블 내용을 기초로 DELETE 할 때는 조금 다릅니다. DELETE FROM TBL1..