VPC 안에 있는 RDS에서 Data base를 dump해 와서 local의 mysql에 밀어 넣는 과정에서 단편적으로 맞닥뜨렸던 문제를 기록합니다.
mysqldump
명령어를 통해 .sql
파일의 형태로 db를 덤프해 올 수 있습니다.$ ssh `tunneling-instanse-username`@`tunneling-instanse-host` -i `key-file-path` mysqldump -u`username` -p`password` -h `remote-db-host` `database-name` > `local/path/to/save.sql`
...: Unknown table 'COLUMN_STATISTICS' in information_schema
라는 에러가 발생할 경우--column-statistics=0
옵션을 추가합니다.$ ssh `tunneling-instanse-username`@`tunneling-instanse-host` -i `key-file-path` mysqldump -u`username` -p`password` -h `remote-db-host` --column-statistics=0 `database-name` > `local/path/to/save.sql`
...unknown variable 'column-statistics=0'...
라는 에러가 발생할 경우--column-statistics=0
을 제거합니다.mysql
명령어를 통해 database-name
이라는 data base 에 dumped.sql
파일의 내용을 로드할 수 있습니다.$ mysql -u`local-user-name` -p`local-pwd` `database-name` < `path/for/dumped.sql`
Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
라는 에러가 발생할 경우CREAT USER...
또는 GRANT...
) 처리됩니다.dumped.sql
의 내용을 약간 수정해줍니다. .sql
파일은 데이터 베이스를 구성하는 sql문이 잔뜩 적혀있어 용량이 매우 큰 경우가 대부분입니다. 따라서 editor으로 열어서 수정하는 것은 좋지 않은 선택입니다. sed
명령어를 사용해 수정합니다.sed
명령어는 레퍼런스가 많지만, Unix 계열인 mac의 터미널에서는 용법이 조금 다릅니다.sed -i '' 's/NO_AUTO_CREATE_USER//' `path/for/dumped.sql`