Category Archives: mysql

Home »  mysql

mysql 사용자 추가 ( 특정IP접속허용)

>>사용자 확인
SELECT user,Host FROM mysql.user;
 
>> 권한설정
grant all privileges on *.* to ‘root’@’%’ identified by ‘root의 패스워드’;
*.* = DB.Table
‘root’@’%’ = 사용자@접속허용IP
 
>> 모든IP허용
INSERT INTO mysql.user (host,user,password) VALUES (‘%’,’root’,password(‘패스워드’));
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’;
FLUSH PRIVILEGES;
 
>> IP대역 허용
INSERT INTO mysql.user (host,user,password) VALUES (‘111.222.%’,’root’,password(‘패스워드’));
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’111.222.%’;
FLUSH PRIVILEGES;
>> 특정 IP 허용
INSERT INTO mysql.user (host,user,password) VALUES (‘111.222.33.44′,’root’,password(‘패스워드’));
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’111.222.33.44′;
FLUSH PRIVILEGES;
>> 원복
DELETE FROM mysql.user WHERE Host=’%’ AND User=’root’;
FLUSH PRIVILEGES;

mysql 전체 데이터베이스에서 특정 테이블 복원

데이터베이스에서 테이블 하나만 복구할시
temp나 test로 덤프를 푼다음
alter table 현재테이블명 rename 디비.변경할테이블명;
위의 명령어로 진행

mysql dump에 바이너리 위치 및 pos 기록하기

mysqldump -u root -p –master-data=2 –all-databases –no-autocommit=1 –single-transaction=1 –extended-insert=1 > 이름.sql
-e or -p : -e는 /root/.my.cnf에 저장된 PW 사용// -p는 직접입력
–master-data=2 : 바이너리 로그에 어디까지 덤프가 떠졋는지 기록됨!!
–all-databases : 모든 databases
–no-autocommit=1 –single-transaction=1 : 속도 단축을 위해서 사용
복원
mysql -u root -p < 파일명.sql

mysql my.cnf 설정

# Example MySQL config file for very large systems.
#
# This is for a large system with memory of 1G-2G where the system runs mainly
# MySQL.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the “–help” option.
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
skip-name-resolve // 사용시 mysql 지연현상 줄일수있씀.
key_buffer_size = 8G // RAM에 50~80%사용 DB서버로만사용시
max_allowed_packet = 64M //
table_open_cache = 1024 //
sort_buffer_size = 2M
read_buffer_size = 2M //
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M //
thread_cache_size = 8
query_cache_size = 32M
# […]

mysql 백업 복구

백업하기
1) DB별로 백업
mysqldump -u root -p DB명 > 파일명.sql
암호입력 (Enter)
2) 전체 백업
mysqldump -u root -p –all-databases > 파일명.sql
암호입력 (Enter)
3) 캐릭터셋 옵션을 이용하여 백업
mysqldump -u root -p –default-character-set=euckr DB명 > 파일명.sql
암호입력 (Enter)
(euckr, utf8 등이 있음)
4) 특정 테이블만 덤프
mysqldump -u root -p DB명 테이블명 > 파일명.sql
mysqldump -u root -p -B DB명 –tables 테이블명1 테이블명2 테이블명3 > 파일명.sql
5) 테이블 구조만 백업
mysqldump -u root -p –no-data DB명 > 파일명.sql
6) XML 파일로 백업
mysqldump -u root -p –xml DB명 > 파일명.sql
복구 하기
1) DB별로 복구
mysql -u root -p DB명 < 파일명.sql
암호입력 (Enter)
2) 전체 복구
mysql -u root -p < 파일명.sql
암호입력 (Enter)
3) 캐릭터셋 옵션을 이용하여 백업 복구
mysqldump -u root -p –default-character-set=euckr DB명 < 파일명.sql
암호입력 (Enter)
(euckr, utf8 등이 있음)
mysql 설정파일
/etc/my.cnf
/usr/local/mysql/data
mysql 이 설치된 디렉토리 전체 백업
cp -arp >> 모든 권한 복사
삭제
rm -rf << 디렉토리 파일구분없이 다삭제

mysql 접속허용 및 사용자추가

SELECT user,Host FROM mysql.user; // 확인
INSERT INTO mysql.user (host,user,password) VALUES (‘localhost’,’root’,password(‘$PASSWORD‘)); // 추가
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’$IP‘; // 접근지 설정
FLUSH PRIVILEGES; // 적용
update user set password=password(‘$PASSWORD‘) where user=’root’; // 패스워드변경
사용자 추가~~
insert into user (host, user, password) values(‘localhost’, ‘$ID, password(‘$PASSWORD’));

Mysql 케릭터셋 (언어셋) 확인

show variables like ‘c%’;