MySql 수동 설치 및 설정과 구동

다운로드

MySql 5.7 Download page
windows 64bit zip 버전 다운로드

설치

귀찮은 문제들이 생길 수 있으므로 상위 폴더에 띄어쓰기, 한글 등이 들어 있지 않도록 주의 하여 압축을 해제한다.
환경변수에 MYSQL_HOME 등록. Path 에 MYSQL_HOME\bin 등록. (bin폴더 가서 작업하면 굳이 안해도..)

설정파일 생성

  1. 루트에 data 폴더 생성.
  2. 설치한 폴더 루트에 my.ini 파일 생성 (linux 에선 my.cnf)
[mysqld]  
basedir=d:/projects/mysql5  
datadir=d:/projects/mysql5/data  
port=3306

[client]  
default-character-set = utf8

[mysqld]  
character-set-client-handshake=FALSE  
init_connect="SET collation_connection = utf8_general_ci"  
init_connect="SET NAMES utf8"  
character-set-server = utf8  
collation-server = utf8_general_ci

[mysqldump]  
default-character-set = utf8

[mysql]  
default-character-set = utf8

초기화

mysqld --initialize-insecure (root 비밀번호 없음)
mysqld --initialize (비밀번호 만들어냄)

실행

mysqld --console

mysql -u root 로 접속해본다.
실행 잘 되는지 확인 해 보고 Ctrl + C 로 중지

윈도우즈 서비스 등록

mysqld --install

서비스 제거

mysqld --remove

sql 백업 파일 import

mysql -h hostname -u username -p databasename < db_backup.sql

foreign key 오류.( ERROR 1215 (HY000) at line 3041: Cannot add foreign key constraint )

cat <(echo "SET FOREIGN_KEY_CHECKS=0;") imports.sql | mysql

date null 관련 오류.

select @@sql_mode; (또는 select @@global.sql_mode;) 실행하여 나오는 설정을
my.ini ( my.cnf ) 설정의 [mysqld] 아래의
sql_mode='...,...,..' 에 복사하여 집어 넣는다. 이때 NO_ZERO_DATE 관련한 설정을 제거한다.
sql_mode 는 대소문을 구분한다.(대문자일때 서비스가 올라가지 않았다)

패스워드 변경 정책

쉬운 단어로 변경이 안될 때

  • 정책확인
    SHOW VARIABLES LIKE 'validate_password%';
  • 정책을 낮게 변경
    SET GLOBAL validate_password_policy=LOW;

테이블명 대소문자 구분(윈도우는 괜챃으나, 리눅스에서 간혹..)

#Error Code: 1146. Table 'dbname.table_name' doesn't exist
-확인
show variables like 'lower_case_table_names'; (0: 대소문자 구분함)
-수정
/etc/my.cnf 의 [mysqld] 영역에 lower_case_table_names=1 (1: 대소문자 구분안함) 을 추가한다.
(재시작필요 systemctl restart mysqld)

TABLE 상세확인

show table status;

DB FILE 저장위치 확인

SHOW VARIABLES WHERE Variable_Name LIKE '%dir';
또는
select @@datadir;

DATABASE 삭제가 안될때

  1. 저장위치 폴더 직접제거
  2. 같은 DB 명 CREATE
  3. 같은 DB 명 DROP
Posted by KENSIN
,