Linux 서버 뿐 아니라 로컬 에서도 Mysql data import 혹은 export 를 해야할 상황이 있다.
로컬에서는 당연히 workbench 를 사용하기 때문에 간단히 import , export 를 할 수 있다.
하지만 Linux 서버에서는 로컬 언어를 사용하기 때문에 지식이 필요해서 여기에다 그 지식을 적어 놓으려 한다 ㅎㅎ
리눅스 서버 조작 관련해서는 해당 언어를 잘 사용하는 것이 효과적이라 할 수 있다.
여기엔 그에 따른 해결방법과 예시등을 적어놓을 것이다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
1. MySQL 로그인
먼저 MySQL에 로그인해야 합니다. 터미널에서 다음 명령어를 입력하여 MySQL 서버에 접속합니다:
기본적인 mysql 명령어 In Linux
mysql -u root -p
여기서 root는 MySQL 사용자의 본인의 이름이다. 비밀번호를 입력하라는 메시지가 나타나면 MySQL root 사용자의 비밀번호를 입력한다 . 자기가 하고 싶은 비밀번호를 입력하면 되는데 보통 비밀번호 입력하는 부분이 굉장히 타이트하다.
mysql> select host, user, authentication_string from user;
이렇게 하면 mysql 8 버전에서 현재 자기가 어떤 암호를 설정해놓았는지 확인할 수 있다.
암호를 변경하고 싶다면
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '변경후 비밀번호';
위와 같이 코드를 입력하면 암호를 변경할 수 있다. 하지만 아까 말했듯이 암호 정책이 굉장히 타이트하다 . 우선 암호 정책을 확인해보자
정책을 확인하는 코드이다.
show variables like 'validate_password%';
위와 같은 사진을 보면 바로 정책 부분을 볼 수 있다.
우선 각 정책의 옵션들의 특징을 알아보자면
- LOW인 경우, Length(최소 8자 이상만) 맞추기
- MEDIUM인 경우, Length & 숫자, 대문자, 소문자, 특수문자가 모두 포함된 비밀번호를 사용
- STRONG인 경우 dictionary file 이란 것을 등록해야 한다. 이 파일에 포함된 단어는 비밀번호로 사용할 수 없다.
- 보통 MEDIUM을 LOW로 변경하여 계정을 생성하면 쉽게 정책을 수정하면서 비밀번호를 수정할 수 있다.
그럼 정책을 변경해보자
set global validate_password.policy=LOW;
그리고 정책을 LOW 변경되면
CREATE USER connectuser@localhost IDENTIFIED BY '비밀번호';
자신이 원하는 비밀번호를 설정하면 변경 완료 !!!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/012.gif)
2. 데이터베이스 선택 또는 생성
임포트할 데이터를 넣을 데이터베이스가 이미 존재하는 경우 해당 데이터베이스로 이동한다.
데이터베이스 목록을 확인하려면 다음 명령을 실행한다.
SHOW DATABASES;
데이터베이스가 존재하지 않는다면, 새 데이터베이스를 생성할 수 있는데 이 명령어로 입력하면 된다.
CREATE DATABASE your_database_name;
그 후 해당 데이터베이스를 선택한다
USE your_database_name;
굳굳 !!
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/028.gif)
3. SQL 파일 임포트
MySQL에서 .sql 파일을 데이터베이스에 임포트하려면 source 명령을 사용할 수 다.
MySQL 프롬프트 내에서 다음 명령어를 사용하면 된다.
source /path/to/yourfile.sql;
예를 들어, 파일이 /home/user/backup.sql에 있다면:
source /home/user/backup.sql;
이 명령을 실행하면 MySQL이 해당 SQL 파일을 실행하고 데이터베이스에 데이터를 임포트하면 된다.
그럼 바로 .sql 덤프된 파일들이 알아서 mysql 에 덮어씌워지는 로그들을 확인할 수 있다.
쭈르르르르륵 내려간다 ~~!
볼만하구만...
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/027.gif)
4. MySQL 외부에서 임포트하기
MySQL 명령줄 인터페이스에 들어가지 않고도 MySQL 외부에서 직접 파일을 임포트할 수 있다.
MySQL 사용자 계정과 비밀번호, 데이터베이스 이름을 알고 있는 경우 다음 명령어를 터미널에서 직접 실행할 수 있는데 그 방법은
mysql -u root -p your_database_name < /path/to/yourfile.sql
이렇게 사용하면 된다. 이게 근데 자세히 무슨 뜻인지 모르는 경우가 있다. 그래서 예를 들자면,
mysql -u root -p my_database < /home/user/backup.sql
이 명령어는 MySQL 사용자 root를 사용하여 my_database에 /home/user/backup.sql 파일의 내용을 임포트 한다는 내용이다.
5. 데이터 임포트 확인
임포트가 완료되면 MySQL에 다시 접속하여 임포트된 데이터가 정상적으로 들어갔는지 확인할 수 있다.
이 방법은 그냥 처음부터 다시 들어가서 제대로 입력되었는지 검색하는 방법이다
mysql -u root -p
데이터베이스로 이동한 후 테이블 목록을 확인한다.
USE your_database_name;
SHOW TABLES;
테이블의 데이터를 확인하려면:
SELECT * FROM your_table_name LIMIT 10;
짜란 !! 이렇게 하면 제대로 입력되었는지 확인할 수 있다..
엄청 내용은 길다.
하지만 이 부분들에서는 문제와 해결책이 자세히 쓰여져있기 때문에 나중에 큰 도움이 될 수 있을 것이다 !!!!
추가 팁
- 임포트하는 파일이 크다면, mysql 명령어에 --max_allowed_packet 옵션을 추가하여 임포트할 수 있는 패킷 크기를 조정할 수 있다. 패킷 용량을 키우는 것이다.
- 백업 파일이 압축되어 있을 경우, 압축을 풀고 임포트해야 한다. gzip으로 압축된 파일은 다음 명령어로 임포트할 수 있다.
gunzip < /path/to/yourfile.sql.gz | mysql -u root -p your_database_name
이 과정을 따라 하면 CentOS 7에서 MySQL 데이터베이스에 SQL 파일을 성공적으로 임포트할 수 있당..
끄읕!!!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/004.gif)
'Mysql' 카테고리의 다른 글
Mysql_ Mybatis ResultMap .... (1) | 2024.09.11 |
---|