반응형
MySQL 에러
1) Could not acquire management access for administration
RuntimeError: Unable to execute command chcp.
workbranch 실행에 로그인 까지 잘되는데 스키마 접속등 다른 것들이 작동하지 않는다
나의 경우에는 서비스도 잘 올라와있고, 환경설정에서 Path도 잘 적용되어 있었다.
런타임에러는... 복합적으로 나오는 에러 같아 완전 삭제 후 재설치를 권장...
하지만 나의 경우에는 맞는 케이스가 아닌지 전부 시도했지만 증상은 동일했다.
참고 블로그 : 설치과정에서 나오는 트러블슈팅을 잘 정리해 놓으신 글을 보았다.
https://velog.io/@timointhebush/MySQL-%EC%82%AC%ED%88%AC%EA%B8%B0
2)
ERROR 1046 (3D000) : No database selected
DB선택이 되지 않아 조회가 안된다 함
mysql> use DB명;
으로 DB잡고 조회하면 나타남
MySQL DB복사하는 배치파일
# Linux
# 복사 대상 DB 정보
export SOURCE_DB_HOST=source_host
export SOURCE_DB_USER=source_user
export SOURCE_DB_PASSWORD=source_password
export SOURCE_DB_NAME=source_database
# 대상 DB 정보
export TARGET_DB_HOST=target_host
export TARGET_DB_USER=target_user
export TARGET_DB_PASSWORD=target_password
export TARGET_DB_NAME=target_database
# 테이블 목록
export TABLE_LIST="테이블1 테이블2 ..."
# 테이블 리스트 만큼 복사
for TABLE in $TABLE_LIST; do
# Target에 테이블이 있다면 삭제
mysql -h $TARGET_DB_HOST -u $TARGET_DB_USER -p$TARGET_DB_PASSWORD $TARGET_DB_NAME -e "DROP TABLE IF EXISTS $TABLE;"
# 복사
mysqldump -h $SOURCE_DB_HOST -u $SOURCE_DB_USER -p$SOURCE_DB_PASSWORD $SOURCE_DB_NAME "$TABLE" \
| mysql -h $TARGET_DB_HOST -u $TARGET_DB_USER -p$TARGET_DB_PASSWORD $TARGET_DB_NAME
done
:: WINDOWS
:: 복사 대상 DB 정보
set SOURCE_DB_HOST=source_host
set SOURCE_DB_USER=source_user
set SOURCE_DB_PASSWORD=source_password
set SOURCE_DB_NAME=source_database
:: 대상 DB 정보
set TARGET_DB_HOST=target_host
set TARGET_DB_USER=target_user
set TARGET_DB_PASSWORD=target_password
set TARGET_DB_NAME=target_database
:: 테이블 목록
set TABLE_LIST=테이블1 테이블2 ...
:: 테이블 리스트 만큼 복사
for %%i in (%TABLE_LIST%) do (
:: Target에 테이블 존재하면 삭제
mysql -h %TARGET_DB_HOST% -u %TARGET_DB_USER% -p%TARGET_DB_PASSWORD% %TARGET_DB_NAME% -e "DROP TABLE IF EXISTS %%i;"
:: 복사
mysqldump -h %SOURCE_DB_HOST% -u %SOURCE_DB_USER% -p%SOURCE_DB_PASSWORD% %SOURCE_DB_NAME% "%%i" ^
| mysql -h %TARGET_DB_HOST% -u %TARGET_DB_USER% -p%TARGET_DB_PASSWORD% %TARGET_DB_NAME%
)
Linux든 Windows든 MySQL에서는 복사할때 테이블정보를 큰따옴표("")로 묶으면 테이블 명이 유지된다
하지만 utf8_general_ci는 대소문자를 구분하지 않는 일반적인 콜레이션이기에 해당 콜레이션으로 되어있다면 변화가 없을 수 있다
추가 정보>
1) 임시파일을 이용한 복사방법
# Linux
# 변수 설정은 동일
# 테이블 복사
for TABLE in $TABLE_LIST; do
mysqldump -h $SOURCE_DB_HOST -u $SOURCE_DB_USER -p$SOURCE_DB_PASSWORD \
--default-character-set=utf8 --skip-set-charset --skip-quote-names \
--result-file=dump.sql $SOURCE_DB_NAME "$TABLE"
mysql -h $TARGET_DB_HOST -u $TARGET_DB_USER -p$TARGET_DB_PASSWORD \
--default-character-set=utf8 --skip-set-charset --init-command="SET sql_mode='ANSI_QUOTES';" $TARGET_DB_NAME < dump.sql
done
# 임시 파일 삭제
rm dump.sql
:: WINDOWS
:: 변수 설정은 동일
:: 테이블 복사
for %%i in (%TABLE_LIST%) do (
mysqldump -h %SOURCE_DB_HOST% -u %SOURCE_DB_USER% -p%SOURCE_DB_PASSWORD% ^
--default-character-set=utf8 --skip-set-charset --skip-quote-names ^
--result-file=dump.sql %SOURCE_DB_NAME% "%%i"
mysql -h %TARGET_DB_HOST% -u %TARGET_DB_USER% -p%TARGET_DB_PASSWORD% ^
--default-character-set=utf8 --skip-set-charset --init-command="SET sql_mode='ANSI_QUOTES';" %TARGET_DB_NAME% < dump.sql
)
:: 임시 파일 삭제
del dump.sql
반응형
'Backend > DB 실무' 카테고리의 다른 글
[Query] 초를 시간과 분으로 변환 (0) | 2024.04.25 |
---|---|
[DBeaver] Connection Error (0) | 2024.03.28 |
[SQL] 문자 처리 (0) | 2024.03.18 |
[Mybatis] 쿼리문 (0) | 2024.02.28 |
[SQL] SELECT한 결과 Insert 혹은 Update (0) | 2024.02.28 |