728x90
반응형

Database 48

mysqldump에서 덤프 파일을 복원하는 방법

질문 : mysqldump에서 덤프 파일을 어떻게 복원합니까? Windows Server 2008 컴퓨터에서 데이터베이스로 복원해야하는 MySQL 데이터베이스 파일을 받았습니다. MySQL 관리자를 사용해 보았지만 다음 오류가 발생했습니다. 선택한 파일은 mysqldump에 의해 생성되었으며이 애플리케이션에서 복원 할 수 없습니다. 어떻게 작동합니까? 답변 다음을 실행하는 것만 큼 간단해야합니다. mysql -u -p < db_backup.dump 덤프가 단일 데이터베이스 인 경우 파일 맨 위에 다음 행을 추가해야 할 수 있습니다. USE ; 많은 데이터베이스의 덤프 였다면 use 문이 이미 거기에 있습니다. 이러한 명령을 운영하는 (윈도우에서) 프롬프트 명령 및 최대 열려면 cd 하여 디렉토리 mysq..

[Database] left, right, outer, inner join의 차이점

질문 : 왼쪽, 오른쪽, 외부 및 내부 조인의 차이점은 무엇입니까?이 모든 조인을 차별화하는 방법이 궁금합니다 ...답변간단한 예 Students 테이블과 Lockers 테이블이 있다고 가정 해 보겠습니다. SQL에서 조인에 지정하는 첫 번째 테이블 인 Students 는 LEFT 테이블이고 두 번째 테이블 인 Lockers 는 RIGHT 테이블입니다.각 학생은 로커에 할당 될 수 있으므로 Student LockerNumber 열이 있습니다. 한 명 이상의 학생이 잠재적으로 단일 사물함에있을 수 있지만, 특히 학년 초에는 사물함이없는 신입생과 배정 된 학생이없는 사물함이있을 수 있습니다.이 예를 위해 학생 100 명 중 70 명에 사물함이 있다고 가정 해 보겠습니다. 총 50 개의 사물함 이 있으며 그중..

MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여

질문 : MySQL : 데이터베이스에 대한 ** 모든 ** 권한 부여 예를 들어 'mydb'와 같은 데이터베이스를 만들었습니다. CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH'; GRANT ALL ON mydb.* TO 'myuser'@'%'; GRANT ALL ON mydb TO 'myuser'@'%'; GRANT CREATE ON mydb TO 'myuser'@'%'; FLUSH PRIVILEGES; 이제 어디서나 데이터베이스에 로그인 할 수 있지만 테이블을 만들 수는 없습니다. 해당 데이터베이스 및 (향후) 테이블에 대한 모든 권한을 부여하는 방..

Docker에서 영구 저장소 (예 : 데이터베이스)를 처리하는 방법

질문 : Docker에서 영구 저장소 (예 : 데이터베이스)를 처리하는 방법 사람들은 Docker 컨테이너의 영구 스토리지를 어떻게 처리합니까? 현재이 접근 방식을 사용하고 있습니다. 예를 들어 PostgreSQL 용 이미지를 빌드 한 다음 다음을 사용하여 컨테이너를 시작합니다. docker run --volumes-from c0dbc34fd631 -d app_name/postgres IMHO는 단점이 있는데, "c0dbc34fd631"컨테이너를 삭제해서는 안된다는 것입니다. 또 다른 아이디어는 컨테이너에 호스트 볼륨 "-v"를 장착하는 것입니다, 그러나, 컨테이너 내의 사용자 ID는 반드시 호스트에서 사용자 ID와 일치하지 않는 한 다음 사용 권한이 엉망이 될 수 있습니다. 참고 : --volumes-..

MySQL의 명령 줄을 사용하여 SQL 파일을 가져오는 방법

질문 : MySQL의 명령 줄을 사용하여 SQL 파일을 어떻게 가져 옵니까? phpMyAdmin 에서 내 보낸 .sql 파일이 있습니다. 명령 줄을 사용하여 다른 서버로 가져오고 싶습니다. Windows Server 2008 R2가 설치되어 있습니다. .sql 파일을 C 드라이브 에 배치하고이 명령을 시도했습니다. database_name < file.sql 그것은 작동하지 않습니다. 구문 오류가 발생합니다. 문제없이이 파일을 어떻게 가져올 수 있습니까? 먼저 데이터베이스를 만들어야합니까? 답변 시험: mysql -u username -p database_name < file.sql MySQL 옵션을 확인하십시오. 참고 -1 : file.sql 의 전체 경로를 사용하는 것이 좋습니다. 참고 -2 : 원래..

PostgreSQL 데이터베이스의 모든 테이블을 삭제하는 방법

질문 : PostgreSQL 데이터베이스의 모든 테이블을 삭제하려면 어떻게해야합니까? 명령 줄에서 작업하면서 PostgreSQL의 모든 테이블을 삭제하려면 어떻게해야합니까? 난 그냥 모든 테이블과 그 안에있는 모든 데이터, 데이터베이스 자체를 삭제하고 싶지 않아요. 답변 모든 테이블이 단일 스키마에있는 경우이 접근 방식이 작동 할 수 있습니다 (아래 코드에서는 스키마 이름이 public 이라고 가정합니다). DROP SCHEMA public CASCADE; CREATE SCHEMA public; PostgreSQL 9.3 이상을 사용하는 경우 기본 권한을 복원해야 할 수도 있습니다. GRANT ALL ON SCHEMA public TO postgres; GRANT ALL ON SCHEMA public T..

Ruby on Rails 데이터베이스 제거 또는 재생성

질문 : Ruby on Rails 데이터베이스 제거 또는 재생성 데이터로 가득 찬 dev Ruby on Rails 데이터베이스가 있습니다. 모든 것을 삭제하고 데이터베이스를 다시 만들고 싶습니다. 다음과 같은 것을 사용할 생각입니다. rake db:recreate 이것이 가능한가? 답변 이 작업을 수행하는 두 가지 방법을 알고 있습니다. 이렇게하면 데이터베이스가 재설정되고 현재 스키마가 모두 다시로드됩니다. rake db:reset db:migrate 그러면 db가 파괴되고 생성 된 다음 현재 스키마가 마이그레이션됩니다. rake db:drop db:create db:migrate 두 시나리오 모두에서 모든 데이터가 손실됩니다. 출처 : https://stackoverflow.com/questions/4..

PHP에서 SQL 공격(injection)을 방지하는 방법

질문 : PHP에서 SQL 주입을 어떻게 방지 할 수 있습니까? 사용자 입력이 SQL 쿼리에 수정없이 삽입되면 다음 예제와 같이 애플리케이션이 SQL 주입에 취약 해집니다. $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); 사용자가 값과 같은 것을 입력 할 수 있기 때문입니다 value'); DROP TABLE table;-- , 쿼리는 다음과 같습니다. INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--') 이를 방지하기 위해 무엇을 할 수 있습니까? 답변 준비된 문과 매개 변수..

MongoDB 데이터베이스의 이름을 변경하는 방법

질문 : MongoDB 데이터베이스의 이름을 어떻게 바꾸나요? 내 MongoDB 데이터베이스 이름에 오타가 있으며 데이터베이스 이름을 바꾸려고합니다. 이렇게 복사 하고 삭제할 수 있습니다. db.copyDatabase('old_name', 'new_name'); use old_name db.dropDatabase(); 데이터베이스 이름을 바꾸는 명령이 있습니까? 답변 아니에요. https://jira.mongodb.org/browse/SERVER-701 참조 불행히도 이것은 데이터베이스 메타 데이터가 원래 (기본) 스토리지 엔진에 저장되는 방식으로 인해 구현할 수있는 간단한 기능이 아닙니다. MMAPv1 파일에서 모든 단일 컬렉션 및 인덱스를 설명하는 네임 스페이스 (예 : dbName.collectio..

Sqlite3 데이터베이스에서 열 이름 목록을 얻는 방법

질문 : Sqlite3 데이터베이스에서 열 이름 목록을 얻는 방법은 무엇입니까? iPhone 앱을 새 데이터베이스 버전으로 마이그레이션하고 싶습니다. 저장된 버전이 없기 때문에 특정 열 이름이 있는지 확인해야합니다. 이 Stackoverflow 항목 은 선택을 제안합니다. SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table' 결과를 구문 분석하십시오. 그게 일반적인 방법인가요? 대안? 답변 PRAGMA table_info(table_name); 모든 열 이름 목록이 표시됩니다. 출처 : https://stackoverflow.com/questions/947215/how-to-get-a-list-of-column-nam..

관계형 데이터베이스에 계층 적 데이터를 저장하는 옵션

질문 : 관계형 데이터베이스에 계층 적 데이터를 저장하는 옵션은 무엇입니까? 좋은 개요 일반적으로 빠른 읽기 시간 (예 : 중첩 세트) 또는 빠른 쓰기 시간 (인접 목록) 중에서 결정을 내립니다. 일반적으로 필요에 가장 적합한 아래 옵션 조합으로 끝납니다. 다음은 몇 가지 심층 자료를 제공합니다. 하나 더 중첩 된 간격 대 인접 목록 비교 : 내가 찾은 인접 목록, 구체화 된 경로, 중첩 된 집합 및 중첩 된 간격 의 최상의 비교. 계층 적 데이터 모델 : 장단점 및 예제 사용에 대한 좋은 설명이 포함 된 슬라이드 MySQL의 계층 구조 표현 : 특히 Nested Set에 대한 매우 좋은 개요 RDBMS의 계층 적 데이터 : 내가 본 것 중 가장 포괄적이고 잘 구성된 링크 집합이지만 설명 방식은 그리 많..

SQLite의 초당 INSERT 성능 향상

질문 : SQLite의 초당 INSERT 성능 향상 SQLite를 최적화하는 것은 까다 롭습니다. C 애플리케이션의 대량 삽입 성능은 초당 85 개의 삽입에서 초당 96,000 개 이상의 삽입까지 다양합니다! 배경 : 우리는 데스크톱 애플리케이션의 일부로 SQLite를 사용하고 있습니다. 애플리케이션이 초기화 될 때 추가 처리를 위해 구문 분석되고 SQLite 데이터베이스에로드되는 XML 파일에 저장된 많은 양의 구성 데이터가 있습니다. SQLite는 빠르고 특별한 구성이 필요하지 않으며 데이터베이스가 단일 파일로 디스크에 저장되기 때문에 이러한 상황에 이상적입니다. 근거 : 처음에 나는 내가보고있는 성능에 실망했습니다. SQLite의 성능은 데이터베이스 구성 방법과 API 사용 방법에 따라 크게 다를 ..

PostgreSQL 데이터베이스로 SQL 덤프 가져 오기

질문 : PostgreSQL 데이터베이스로 SQL 덤프 가져 오기 우리는 호스트를 전환하고 있으며 이전 사이트는 사이트의 PostgreSQL 데이터베이스에 대한 SQL 덤프를 제공했습니다. 이제 이것을 테스트하기 위해 로컬 WAMP 서버에 설정하려고합니다. 유일한 문제는 내가 설정 한 PostgreSQL 9에서이 데이터베이스를 가져 오는 방법을 모른다는 것입니다. pgAdmin III를 시도했지만 '가져 오기'기능을 찾을 수 없습니다. 그래서 방금 SQL 편집기를 열고 덤프의 내용을 붙여넣고 실행하면 테이블이 생성되지만 데이터를 넣으려고 할 때 오류가 계속 발생합니다. ERROR: syntax error at or near "t" LINE 474: t 2011-05-24 16:45:01.768633 20..

데이터베이스와 함께 애플리케이션 전송 하는 방법

질문 : 데이터베이스와 함께 애플리케이션 전송 애플리케이션에 데이터베이스가 필요하고 내장 데이터와 함께 제공되는 경우 해당 애플리케이션을 제공하는 가장 좋은 방법은 무엇입니까? 내가해야합니까: SQLite 데이터베이스를 미리 만들고 .apk ? 응용 프로그램에 SQL 명령을 포함하고 데이터베이스를 만들고 처음 사용할 때 데이터를 삽입하도록 하시겠습니까? 내가 보는 단점은 다음과 같습니다. SQLite 버전 불일치로 인해 문제가 발생할 수 있으며 현재 데이터베이스가 어디로 가야하고 어떻게 액세스해야하는지 모르겠습니다. 장치에서 데이터베이스를 만들고 채우는 데 시간이 오래 걸릴 수 있습니다. 어떤 제안? 문제에 관한 문서에 대한 포인터는 대단히 감사하겠습니다. 답변 데이터베이스 생성 및 업데이트에는 두 가지..

데이터베이스를 사용할 때 주의할 점

질문 : 응용 프로그램 개발자의 데이터베이스 개발 실수 응용 프로그램 개발자가 저지르는 일반적인 데이터베이스 개발 실수는 무엇입니까? 답변 1. 적절한 지표를 사용하지 않음 이것은 비교적 쉬운 일이지만 여전히 항상 발생합니다. 외래 키에는 인덱스가 있어야합니다. WHERE 에서 필드를 사용하는 경우에는 (아마도) 인덱스가 있어야합니다. 이러한 인덱스는 실행해야하는 쿼리를 기반으로 여러 열을 포함해야하는 경우가 많습니다. 2. 참조 무결성을 적용하지 않음 데이터베이스는 여기에서 다를 수 있지만 데이터베이스가 참조 무결성을 지원하는 경우 (즉, 모든 외래 키가 존재하는 엔터티를 가리 키도록 보장됨)이를 사용해야합니다. MySQL 데이터베이스에서이 오류를 보는 것은 매우 일반적입니다. 나는 MyISAM이 그것..

SQL Server에서 LEFT JOIN vs LEFT OUTER JOIN

질문 : SQL Server에서 LEFT JOIN vs LEFT OUTER JOIN LEFT JOIN 과 LEFT OUTER JOIN 의 차이점은 무엇입니까? 답변 설명서에 따라 : FROM (Transact-SQL) : ::= [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ ] ] JOIN OUTER 키워드는 선택 사항으로 표시됩니다 (대괄호로 묶임). 이 특정 경우에 OUTER 지정 여부는 차이가 없습니다. 의 다른 요소 절에 가입하면서 또한 차이를 만들 것입니다 그들을 떠나, 옵션으로 표시되어 있습니다. 예를 들어, JOIN 절의 전체 유형 부분은 선택 사항입니다.이 경우 JOIN 지정하면 INNER 입니다. 즉, 이것은 합법적입니다. SELECT *..

SQLite 데이터베이스에 한 번에 여러 행을 삽입 하는 방법

질문 : SQLite 데이터베이스에 한 번에 여러 행을 삽입 할 수 있습니까? MySQL에서는 다음과 같이 여러 행을 삽입 할 수 있습니다. INSERT INTO 'tablename' ('column1', 'column2') VALUES ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'); 그러나 이와 같은 작업을 시도하면 오류가 발생합니다. SQLite 데이터베이스에 한 번에 여러 행을 삽입 할 수 있습니까? 이를 수행하는 구문은 무엇입니까? 답변 BrianCampbell이 여기 에서 지적했듯이 SQLite 3.7.11 이상은 이제 원본 게시물의 더 간단한 구문을 지원합니다 . 그러나 표시된 접근 방식은 레거시 데..

MySQL 데이터베이스의 테이블 크기를 얻는 방법

질문 : MySQL 데이터베이스의 테이블 크기를 얻는 방법은 무엇입니까? 이 쿼리를 실행하여 MySQL 데이터베이스에있는 모든 테이블의 크기를 가져올 수 있습니다. show table status from myDatabaseName; 결과를 이해하는 데 도움이 필요합니다. 크기가 가장 큰 테이블을 찾고 있습니다. 어떤 열을 봐야합니까? 답변 이 쿼리를 사용하여 테이블의 크기를 표시 할 수 있습니다 (먼저 변수를 대체해야 함). SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "$DB_NA..

psql : 치명적 : 데이터베이스“<user> " 존재하지 않는다

질문 : psql : 치명적 : 데이터베이스“ " 존재하지 않는다 Mac 용 PostgreSql 앱 ( http://postgresapp.com/ )을 사용하고 있습니다. 이전에 다른 컴퓨터에서 사용했지만 Macbook에 설치할 때 문제가 발생합니다. 응용 프로그램을 설치했고 다음을 실행했습니다. psql -h localhost 다음을 반환합니다. psql: FATAL: database "" does not exist 찾기를 시도하는 데이터베이스를 만들기 위해 콘솔을 실행할 수도없는 것 같습니다. 방금 실행할 때도 똑같은 일이 발생합니다. psql 또는 애플리케이션 드롭 다운 메뉴에서 psql을 실행하는 경우 : 기계 통계 : OSX 10.8.4 psql (PostgreSQL) 9.2.4 도움을 주시면 ..

SQL Server에서 INNER JOIN을 사용하여 삭제하는 방법

질문 : SQL Server에서 INNER JOIN을 사용하여 삭제하려면 어떻게해야합니까? SQL Server 2008 에서 INNER JOIN 을 사용하여 삭제하고 싶습니다. 하지만 이 오류가 발생합니다. 메시지 156, 수준 15, 상태 1, 줄 15 키워드 'INNER'근처에 잘못된 구문이 있습니다. 내 코드 : DELETE FROM WorkRecord2 INNER JOIN Employee ON EmployeeRun=EmployeeNo WHERE Company = '1' AND Date = '2013-05-06' 답변 삭제할 테이블을 지정해야합니다. 다음은 별칭이있는 버전입니다. DELETE w FROM WorkRecord2 w INNER JOIN Employee e ON EmployeeRun=Em..

PostgreSQL 명령 줄 유틸리티를 종료하는 방법 : psql

질문 : PostgreSQL 명령 줄 유틸리티를 종료하는 방법 : psqlpsql 을 종료하는 데 사용할 수있는 명령 또는 단축 키는 무엇입니까?답변\q 를 입력 한 다음 ENTER 를 눌러 psql 을 종료합니다.업데이트 : 2018 년 10 월 19 일PostgreSQL 11 부터는 PostgreSQL 명령 줄 인터페이스에 " quit "및 " exit "키워드가 포함되어 명령 줄 도구를 쉽게 종료 할 수 있습니다.출처 : https://stackoverflow.com/questions/9463318/how-to-exit-from-postgresql-command-line-utility-psql

MongoDB 또는 기타 문서 지향 데이터베이스 시스템의 사용시기

질문 : MongoDB 또는 기타 문서 지향 데이터베이스 시스템을 언제 사용해야합니까? 비디오 및 오디오 클립, 사진 및 벡터 그래픽을위한 플랫폼을 제공합니다. 우리는 MySQL을 데이터베이스 백엔드로 시작했고 최근에는 MongoDB 가 요구 사항에 더 적합하기 때문에 파일의 모든 메타 정보를 저장하기 위해 MongoDB를 포함했습니다. 예를 들어, 사진에는 Exif 정보가있을 수 있고 비디오에는 메타 정보를 저장하려는 오디오 트랙도있을 수 있습니다. 비디오와 벡터 그래픽은 일반적인 메타 정보 등을 공유하지 않으므로 MongoDB가이 구조화되지 않은 데이터를 저장하고 검색 가능하게 유지하는 데 완벽하다는 것을 알고 있습니다. 그러나 우리는 플랫폼을 계속 개발하고 기능을 추가합니다. 이제 다음 단계 중 하..

Git 푸시 오류 : insufficient permission for-adding an object to repository datab

질문 : Git 푸시 오류 : insufficient permission for-adding an object to repository datab 공유 git 원격으로 푸시하려고하면 다음 오류가 발생합니다. insufficient permission for adding an object to repository database 그런 다음 여기에서 수정 사항에 대해 읽었습니다. Fix This는 모든 파일이 올바른 그룹이기 때문에 다음 푸시에서 작동했지만 다음에 누군가가 변경 사항을 푸시 할 때 기본 그룹이있는 개체 폴더에 새 항목을 만들었습니다. 그룹으로. 내가 생각할 수있는 유일한 것은 그들이 체크인하는 항목에 대한 개발자의 기본 그룹을 모두 변경하는 것입니다.하지만 그것은 해킹처럼 보입니다. 어떤 아..

Android에서 SQLite의 모범 사례

질문 : Android에서 SQLite의 모범 사례는 무엇입니까? Android 앱 내에서 SQLite 데이터베이스에 대한 쿼리를 실행할 때 모범 사례로 간주되는 것은 무엇입니까? AsyncTask의 doInBackground에서 삽입, 삭제 및 선택 쿼리를 실행하는 것이 안전합니까? 아니면 UI 스레드를 사용해야합니까? 데이터베이스 쿼리가 "무거울 수 있고"앱을 잠글 수 있으므로 UI 스레드를 사용하면 안된다고 가정합니다. 결과적으로 ANR (응용 프로그램 응답 없음 )이 발생합니다. AsyncTask가 여러 개인 경우 연결을 공유해야합니까, 아니면 각각 연결을 열어야합니까? 이러한 시나리오에 대한 모범 사례가 있습니까? 답변 삽입, 업데이트, 삭제 및 읽기는 일반적으로 여러 스레드에서 괜찮지 만 Br..

728x90
반응형