* mysql 경로 찾기

find / -name mysql 


* 폴더 이동

cd /var/lib/mysql/


* 백업

mysqldump -uroot -p[패스워드] [데이터베이스명] > [백업파일이름]


* 압축하기

tar -cvzf [압축할이름] [백업파일이름]


* 복구

mysql -uroot -p [데이터베이스명] < [백업파일이름]






cd /var/lib/mysql/


mysqldump -uroot -penergyfm bems_efcny_bh > back_160211.sql


tar -cvzf back_160211.tar back_160211.sql

'DB > Mysql' 카테고리의 다른 글

외래키 무시, 안전 모드 무시  (0) 2015.07.17
Mssql -> Mysql 마이그레이션  (0) 2015.05.08
[mysql] 한글 설정(utf-8)  (0) 2014.09.22
MY-SQL InnoDB 데이터 복구 방법  (1) 2013.02.08
mysql 권한 주기.  (0) 2013.02.08


* 외래키 무시


SET foreign_key_checks = 0;


실행;


SET foreign_key_checks = 1;




* 안전 모드 무시


SET SQL_SAFE_UPDATES = 0;


실행;


SET SQL_SAFE_UPDATES = 1;



'DB > Mysql' 카테고리의 다른 글

[Mysql] 리눅스 Mysql 데이터베이스 백업  (0) 2015.12.22
Mssql -> Mysql 마이그레이션  (0) 2015.05.08
[mysql] 한글 설정(utf-8)  (0) 2014.09.22
MY-SQL InnoDB 데이터 복구 방법  (1) 2013.02.08
mysql 권한 주기.  (0) 2013.02.08

Mssql을 Mysql로 마이그레이션시 삽질한 내용이다


가장 빈번하게 사용한 함수에 대해 정리해보았다.




'DB > Mysql' 카테고리의 다른 글

[Mysql] 리눅스 Mysql 데이터베이스 백업  (0) 2015.12.22
외래키 무시, 안전 모드 무시  (0) 2015.07.17
[mysql] 한글 설정(utf-8)  (0) 2014.09.22
MY-SQL InnoDB 데이터 복구 방법  (1) 2013.02.08
mysql 권한 주기.  (0) 2013.02.08

mysql 5.5이상부터는 기본적으로 utf-8로 한글설정을 하여도 system설정 말고는 utf-8로 변경이 되어 있지 않는다.


workbench에 왼쪽탭에 > instance > status and system variables에

system variables에 character로 검색하면 system 이름 말고는 utf-8로 설정되어 있지 않는다.



[그림 - 캐릭터 셋 설정(변경전)]


이럴 경우 my.ini에 파일을 수정해야 한다.

(설치 위치는 위에 캐릭터 셋 그림에 마지막 행의 dir 위치를 참고 하면 된다.)


아래 그림 파일에서 my-default.ini파일을 그대로 복사하여 my.ini파일로 교체한다.


[그림 - my.ini 설정 위치]


위 만들어진 파일에 아래와 같이 내용을 채운다.


[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



[mysql]

default-character-set = utf8


[mysqldump]

default-character-set = utf8


[그림 - my.ini 내용]


그리고 mysql을 재시작하여 아래와 같이 utf-8로 설정되어 있다.


[그림 - 캐릭터 셋 설정(변경후)]

'DB > Mysql' 카테고리의 다른 글

[Mysql] 리눅스 Mysql 데이터베이스 백업  (0) 2015.12.22
외래키 무시, 안전 모드 무시  (0) 2015.07.17
Mssql -> Mysql 마이그레이션  (0) 2015.05.08
MY-SQL InnoDB 데이터 복구 방법  (1) 2013.02.08
mysql 권한 주기.  (0) 2013.02.08

mysql의 스토리지 엔진 중(MyISAM, InnoDB) InnoDB에 관련 된 데이터 복구 방법에 대한 설명이다.
본래 InnoDB는 Mysql이 손상되어도 .frm 파일과 ibdata1파일만 존재하여도 복구가 가능하다.(이 방법은 아주 간단하므로 설명 제외)

이번에 설명할 내용은 ibdata1 인 데이터 파일이 손실될 경우에 복구하는 방법에 대해 설명이다.
Mysql은 정상 시작시 파일의 유무 및 다른 파일등을 검사한다.
하지만 파일이 손상되었을 경우 시작하자마자 서비스를 자체적으로 중단한다.
이에 InnoDB는 파일의 검사 등을 하지 않고 강제로 서비스를 시작하여 복구하는 모드가 따로 존재한다.
윈도우 기준으로 Mysql 설치 폴더/my.ini 이하 my.ini 파일에 innodb_force_recovery라는 명령어를 추가 시켜 주고 서비스를 재시작 하면 강제 복구 모드로 설정된다.
예) innodb_force_recovery = 1
숫자는 1에서 6까지 사용 가능하며, 1이 가장 안전하고 좋은 복구 모드이고, 1에서 복구가 안된다면 1~6까지 순차적으로 값을 바꿔가야 한다.
자세한 내용은 http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=01&m_no=21875&cat1=14&cat2=422&cat3=442&lang=k 를 참고 하길 바란다.

위와 같이 프로그램을 시작하면 서비스가 정상적으로 시작하게 되며 그후에 dump로 파일을 백업 시킬 수 있다.
덤프 명령어는 Mysql설치폴더/bin에서 mysqldump -u계정명 -p 데이터베이스명 > 백업할파일.sql 로 하면 백업이 되고
반대로 mysqldump -a -u계정명 -p 데이터베이스명 < 백업할파일.sql 이와 같이 하면 복원이 된다.

만약 1이 아닌 복구 모드로 실행시 파일이 전체적으로 백업되지 않았을 경우 복구 모드에 우선순위를 높여 select 명령어로 검사후 csv파일로 저장
저장 후 벌크 인서트로 파일 다시 불러옴
벌크는 http://kr.blog.yahoo.com/freud19390723/79 를 참고

복원이 완료 된 후에는 innodb_force_recovery = 1를 삭제후 프로그램 재시작을 한다.

간단히 설명하자면 파일이 손상된 경우
1. 서비스 시작 중지
2. my.ini파일에 innodb_force_recovery = 1~6 값 설정 후 저장
3. 서비스 시작
4. 서비스 시작시 정상 동작이면 6. 아니면 5.
5. 정상 동작이 아닐경우 다른 복구 모드를 선택하여 서비스 시작
6. 정상 동작일 경우 mysqldump로 파일 백업
7. 높은 우선순위로 변경하여 파일로 저장후 벌크 인서트로 다시 넣음
8. 복구 모드 삭제 후 서비스 재시작

'DB > Mysql' 카테고리의 다른 글

[Mysql] 리눅스 Mysql 데이터베이스 백업  (0) 2015.12.22
외래키 무시, 안전 모드 무시  (0) 2015.07.17
Mssql -> Mysql 마이그레이션  (0) 2015.05.08
[mysql] 한글 설정(utf-8)  (0) 2014.09.22
mysql 권한 주기.  (0) 2013.02.08

querybrowser 에서 User 테이블의 직접 편집해도 된다.

 

아래와 같이 해도됨

 

1. mysql 의 데이터베이스 mysql 로 들어가서

User 테이블의 정보를 확인 해 본다.

User 컬럼의 localhost 와 % 의 비밀 번호 정보가 다르게 입력 되어 있을 수 있다.

다를 경우

update user set Password=Password('password') where User='id' and Host='%';

commit;

FLUSH PRIVILEGES;

이런 식으로 재등록 해준다.

2. 권한이 없는 문제일 경우

GRANT ALL PRIVILEGES ON *.*TO 'id'@'%' IDENTIFIED BY 'password' with GRANT OPTION;

FLUSH PRIVILEGES;

이런 식으로 해결 해 주면 됨.

 

'DB > Mysql' 카테고리의 다른 글

[Mysql] 리눅스 Mysql 데이터베이스 백업  (0) 2015.12.22
외래키 무시, 안전 모드 무시  (0) 2015.07.17
Mssql -> Mysql 마이그레이션  (0) 2015.05.08
[mysql] 한글 설정(utf-8)  (0) 2014.09.22
MY-SQL InnoDB 데이터 복구 방법  (1) 2013.02.08

+ Recent posts