최근 mysql을 사용하다 보면 데이터를 내보내거나 가져오는 상황이 자주 발생합니다. 간단한 경우에는 navicate를 사용하여 직접 결과를 내보낼 수도 있습니다. 하지만 머신이 원격이고 온라인 머신이기 때문입니다. .이 경우 점프 후 mysql을 mysql에 연결할 수 없으면 navicate에서 이 방법을 사용하여 내보낼 수 없습니다. 인터넷에서 일부 기사를 검색하여 다음과 같이 mysql 가져오기 및 내보내기를 요약했습니다. 🎜>1. 데이터베이스 내보내기
1 | mysqldump -h 127.0.0.1 -u name -p dbname >name.sql
|
로그인 후 복사
127.0.0.1의 데이터베이스 dbname을 name.sql 파일로 내보내기
2. 데이터베이스의 특정 테이블 내보내기
1 | mysqldump -h 127.0.0.1 -u username -ppassword dbname tablename >name.sql
|
로그인 후 복사
ip 127.0.0.1의 데이터베이스 dbname에 있는 tablename 테이블을 name.sql 파일로 내보내기
3. 특정 조건을 만족하는 데이터베이스의 특정 테이블에서 데이터 내보내기
1 | mysqldump -h 127.0.0.1 -u username -ppassword dbname tablename --where= "id>10 limit 10000" >name.sql
|
로그인 후 복사
위의 1번과 2번의 상황은 모두 테이블이나 라이브러리가 모두 익스포트됩니다. , 하지만 때로는 데이터의 일부만 원하는 경우도 있습니다. 위 구조의 경우
tablename 테이블을 데이터베이스에 넣고 id> 10 name.sql 파일로 내보냅니다
4. 테이블을 잠그지 않고 데이터베이스의 특정 테이블을 내보냅니다
1 | mysqldump -h 127.0.0.1 -u username -ppassword --single-transaction dbname tablename>name.sql
|
로그인 후 복사
내보낼 때 테이블을 잠글 수 있는 권한이 없는 경우가 있습니다. 예를 들어 읽기 전용 권한만 있는 경우 테이블을 잠글 수 있는 권한이 없을 수도 있습니다. -transaction.테이블을 잠그지 않고 내보내기
위에서는 1, 2, 3에 대한 데이터베이스 테이블을 잠급니다. 이 명령을 추가하면 테이블을 잠그지 않고 데이터를 내보내는 목적을 달성할 수 있습니다
5. 데이터를 내보내지 않고 데이터베이스의 특정 테이블의 테이블 구조를 내보냅니다.
1 | mysqldump -h 127.0.0.1 -u username -ppassword --single-transaction -d dbname tablename>name.sql
|
로그인 후 복사
가끔 데이터를 내보내고 싶지 않을 때가 있습니다. , 예를 들어 테이블 구조를 내보내면 테이블 구조에 따라 테이블 구조를 완전히 복사하고 생성할 수 있습니다. 이 경우 데이터베이스에 직접 연결할 수 있는 방법이 많이 있습니다. show create table tablename 명령을 사용하여 테이블 생성 문을 가져옵니다. 이는 테이블 구조만 내보내는 또 다른 방법입니다. -d
6. 구조를 내보내지 않고 데이터베이스의 특정 테이블의 데이터를 내보냅니다.
1 | mysqldump -h 127.0.0.1 -u username -ppassword --single-transaction -t dbname tablename>name.sql
|
로그인 후 복사
테이블은 내보내지 않고 데이터만 내보내고 싶은 경우 구조에서 -t를 사용하면 목적을 달성할 수 있습니다. 이 문장을 사용하는 원래 목적은 데이터베이스에 뷰를 내보내는 것입니다. 뷰 생성을 표시할 권한이 없기 때문에 뷰만 내보내려고 할 수 있습니다. 데이터만 가능하지 않은 것으로 나타났습니다. 나중에 사용할 수 있도록 다시 생각해보고 표시하겠습니다.
7. 가져올 데이터베이스
1 2 3 | use dbname;
set names gbk;
source /d1/name/name.sql;
|
로그인 후 복사
데이터를 가져올 때 데이터베이스에 연결하고 소스를 사용하기 전에 인코딩 형식을 -8 등으로 설정할 수 있습니다. 중국어 왜곡 문자 금지
8. 인증
insert into mysql.user(User,Password) 값("name",password("password"));
|
insert into mysql.user(User,Password) values("name",password("password")); |
GRANT ALL PRIVILEGES ON *.* TO "name"@'%' IDENTIFIED BY 'password';
|
flush privileges;
|
show grants for 'test_group'@'%';
|
*.*에서 "name"@'%'에 대한 모든 권한은 'password';
|
플러시 권한; |
'test_group'@'%'; |
에 대한 보조금 표시
위 내용은 mysql 원격 머신에서 데이터를 가져오고 내보내는 내용, 테이블을 잠그거나 잠그지 않는 내용입니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!