제어판에서 MySQL 서버를 시작하고 중지합니다. 모든 MySQL 상태 변수 및 값을 보는 방법

명령줄에서 MySQL 서버 시작 및 중지

다음 두 가지 방법 중 하나로 MySQL 서버를 수동으로 시작할 수 있습니다.

MySQL이 설치된 디렉터리의 bin 하위 디렉터리에 있는 mysqld-nt.exe 파일을 두 번 클릭합니다.

명령 창 열기 Windows 문자열. 이렇게 하려면 시작 버튼을 클릭하고 메뉴에서 실행을 선택한 후 나타나는 프로그램 실행 창의 열기 필드에 다음을 입력합니다. cmd 명령확인을 클릭하세요. 명령줄 창이 화면에 나타납니다(그림 1.25).

쌀. 1.25.명령 프롬프트 창


명령 프롬프트에서 다음 명령을 입력하세요.

mysqld-nt

Enter 키를 누릅니다. MySQL 서버가 시작됩니다.

서버를 설정할 때 bin 하위 디렉터리에 대한 경로가 Path 시스템 변수 값에 추가되지 않은 경우 서버를 시작하려면 파일 이름뿐만 아니라 전체 경로예를 들면 다음과 같습니다.

씨:\ 프로그램 파일\MySQL\MySQL 서버 5.0\bin\mysqld-nt

명령 프롬프트 창에서 서버에 대한 진단 메시지를 보려면 mysqld-nt 대신 다음을 입력하십시오.

mysqld-nt –콘솔

주목!

MySQL 서버 설정 시 비밀번호를 지정하지 않은 경우 루트 사용자, 그러면 서버를 처음 시작할 때 비밀번호를 설정해야 합니다. 그렇지 않으면 누구든지 아래에서 서버를 관리할 수 있습니다. 루트로비밀번호 없이).

루트 비밀번호를 설정하려면 새 명령 프롬프트 창을 열고 다음 명령을 입력하십시오.

mysqladmin -u 루트 비밀번호<пароль>

(또는 C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u 루트 비밀번호<пароль>, 서버 설정 시 Path 시스템 변수 값에 bin 하위 디렉터리 경로가 추가되지 않은 경우) Enter 키를 누릅니다.

나중에 루트 사용자 비밀번호를 변경해야 하는 경우 -p 옵션만 사용하여 동일한 명령을 실행하십시오.

mysqladmin -u 루트 -p 비밀번호<новый пароль>

비밀번호 입력 프롬프트가 나타나면 이전 비밀번호를 입력하고 Enter를 누르세요.

마지막으로 MySQL 서버를 중지해야 하는 경우 다음 명령을 실행합니다.

mysqladmin -u 루트 -p 종료

비밀번호 입력 프롬프트에서 루트 사용자 비밀번호를 입력합니다. 엔터 키를 치시오. MySQL 서버가 중지됩니다.

또한 그래픽 MySQL 관리자 유틸리티를 사용하여 MySQL 서버를 시작하고 중지할 수도 있습니다.

MySQL 관리자를 사용하여 MySQL 서버 시작 및 중지

그래픽 MySQL 관리자 유틸리티를 사용하여 MySQL 서버를 시작하려면 다음 단계를 따르십시오.

1. MySQL 관리자 프로그램을 실행합니다(시작 → 모든 프로그램 → MySQL → MySQL 관리자). 서버 연결 창이 화면에 나타납니다(그림 1.26).

쌀. 1.26.


2. Ctrl 키를 누른 상태에서 취소 버튼 대신 창 오른쪽 하단에 나타나는 건너뛰기 버튼을 클릭하세요. 기본 MySQL 관리자 창이 화면에 나타납니다(그림 1.27).

쌀. 1.27. MySQL 관리자 메인 창


4. MySQL 서버가 다음과 같이 구성되지 않은 경우 윈도우 서비스, 창 오른쪽 영역에 있는 서비스 시작 버튼을 사용할 수 없습니다. 다음과 같은 예비 단계를 수행해야 합니다.

1) 서비스 구성 탭으로 이동합니다. 탭 하단에서 새 서비스 설치 버튼을 찾으세요. 새로운 서비스) 그리고 그것을 누르십시오;

2) 나타나는 대화 상자에서 서비스 이름을 지정하고 확인을 클릭하십시오.

3) 구성 파일 이름 필드에 경로를 입력합니다. 구성 파일 my.ini(그림 1.28)(예: C: \Program Files\ MySQL\MySQL Server 5.0\my.ini) 빨간색 글꼴 색상은 파일을 찾을 수 없음을 의미합니다. 색상이 정상으로 바뀌면 경로가 올바른 것입니다.

4) 바이너리 경로 필드에 mysqld-nt.exe 파일의 경로를 입력합니다(예: C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;).

6) 서비스 시작/중지 탭으로 돌아갑니다.

쌀. 1.28.서비스 구성 탭 5. 서비스 시작 버튼을 클릭합니다. MySQL 서버가 시작됩니다.


주목!

MySQL 서버를 설정할 때 루트 사용자 비밀번호를 지정하지 않은 경우 서버를 처음 시작할 때 비밀번호를 설정해야 합니다. 그렇지 않으면 누구나 비밀번호 없이 루트로 서버를 관리할 수 있습니다. 현재 MySQL 버전관리자는 루트 비밀번호를 설정할 수 없으며 이 작업을 수행하려면 명령 유틸리티를 사용해야 합니다. MySQL 문자열 admin("명령줄에서 MySQL 서버 시작 및 중지" 하위 섹션 참조).

MySQL 서버를 중지하려면 MySQL을 사용하여관리자님, 다음 단계를 따르세요.

1. MySQL 관리자 프로그램을 실행합니다(시작 → 모든 프로그램 → MySQL → MySQL 관리자). 서버 연결 창이 화면에 나타납니다(그림 1.26 참조).

서버 호스트 - 값 localhost(로컬 컴퓨터);

포트 – 서버를 설정할 때 선택한 포트 번호(기본값 – 3306)

사용 이름 – 루트 값;

비밀번호 – 루트 사용자 비밀번호입니다. 확인을 클릭하세요.

3. 기본 MySQL 관리자 창의 왼쪽 창에서 서비스 제어를 클릭합니다.

4. 창 오른쪽 창에서 서비스 중지 버튼을 클릭합니다. MySQL 서버가 중지됩니다.

다음 하위 섹션에서는 Windows 관리 도구를 사용하여 MySQL 서버를 시작하는 방법을 배웁니다.

제어판에서 MySQL 서버 시작 및 중지

설정 마법사("MySQL 서버 구성" 하위 섹션 참조) 또는 MySQL 관리자 유틸리티("MySQL 관리자를 사용하여 MySQL 서버 시작 및 중지" 하위 섹션 참조)를 사용하여 MySQL 서버가 Windows 서비스로 구성된 경우 시작하고 중지합니다. 제어판의 서비스 구성 요소를 사용할 수 있습니다.

서비스 구성 요소에 액세스하려면 시작 버튼을 클릭하고 메뉴에서 제어판을 선택한 다음 제어판에서 관리 도구를 두 번 클릭하고 마지막으로 관리 도구 창에서 서비스를 두 번 클릭합니다. 모든 로컬 서비스 목록이 포함된 서비스 창이 화면(그림 1.29)에 나타납니다.

쌀. 1.29.제어판의 MySQL 서비스


서비스 창에서 MySQL 서비스 이름을 클릭합니다. 이름은 구성 마법사나 MySQL 관리자에서 서비스를 생성할 때 결정됩니다. 그런 다음 클릭하세요. 필수 링크서비스 이름 아래: 서비스 시작, 서비스 중지 또는 서비스 다시 시작.

MySQL 서버가 실행되면 연결할 수 있습니다. 다음 하위 섹션에서는 이를 수행하는 방법을 배우게 됩니다.

명령줄에서 서버에 연결

명령줄에서 MySQL 서버에 연결하려면 다음 단계를 따르세요.

1. Windows 명령 프롬프트 창을 엽니다. 이렇게 하려면 시작 버튼을 클릭하고 메뉴에서 실행을 선택한 후 나타나는 프로그램 실행 창에서 열기 필드에 cmd를 입력하고 확인을 클릭합니다.

2. 명령줄(그림 1.25 참조)에 다음 명령을 입력합니다.

MySQL -h<Имя компьютера>-유<Имя пользователя>-피

(어디<Имя компьютера>은(는) 서버가 실행 중인 컴퓨터의 이름입니다.) Enter를 누르세요. 비밀번호를 입력하라는 메시지가 표시되면 사용자의 비밀번호를 입력합니다.

동일한 컴퓨터에서 실행되는 MySQL 서버에 연결해야 하는 경우 컴퓨터 이름(localhost)을 생략할 수 있습니다. 예를 들어

mysql -u 루트 -p

서버에 연결하면 명령줄 프롬프트가 mysql>로 변경됩니다(그림 1.30). 이제 테이블 추가, 데이터 입력 및 쿼리, 새 사용자 등록 등 데이터베이스 작업을 시작할 수 있습니다.

쌀. 1.30.명령줄에서 MySQL 서버에 연결


서버와의 연결을 끊으려면 명령줄에 다음 명령을 입력하면 됩니다.

Enter 키를 누릅니다.

MySQL 서버에 연결하는 다른 방법은 그래픽 MySQL 쿼리 브라우저 유틸리티를 통해 제공됩니다.

MySQL 쿼리 브라우저를 사용하여 서버에 연결

MySQL 쿼리 브라우저 유틸리티는 SQL 문을 생성, 편집 및 실행하기 위한 인터페이스입니다. 명령줄보다 더 편리합니다. 데이터베이스 작업에 MySQL 쿼리 브라우저를 사용하기로 결정한 경우 다음 단계에 따라 서버에 연결하세요.

1. MySQL 쿼리 브라우저 프로그램을 시작합니다(시작 → 모든 프로그램 → MySQL → MySQL 쿼리 브라우저). 서버 연결 창이 화면에 나타납니다(그림 1.31).

쌀. 1.31. MySQL 서버 연결 창


2. 서버 연결 창의 필드에 연결 매개변수를 입력합니다.

서버 호스트 – MySQL 서버가 실행되고 있는 컴퓨터의 이름입니다.

포트 - 서버를 설정할 때 선택한 포트 번호(기본값 - 330 6)

사용자 이름 – 사용자 이름

비밀번호 – 사용자 비밀번호;

기본 스키마 - 작업할 데이터베이스의 이름입니다(기존 데이터베이스이거나 새 데이터베이스일 수 있음).

3. 확인을 클릭합니다. 새 데이터베이스의 이름을 입력한 경우 나타나는 대화 상자에서 예를 클릭하여 이 데이터베이스를 만듭니다.

서버에 연결하면 기본 MySQL 쿼리 브라우저 창이 화면에 나타납니다(그림 1.32). 여기에서 테이블 추가, 데이터 입력 및 쿼리, 새 사용자 등록 등 데이터베이스에 대한 모든 작업을 수행할 수 있습니다.

쌀. 1.32. MySQL 쿼리 브라우저 메인 창


주목!

SQL 쿼리를 표시하기 위해 MySQL 쿼리 브라우저에서 사용되는 기본 글꼴은 러시아어 문자를 지원하지 않습니다. 쿼리 텍스트에 러시아어 문자를 입력하려면 다른 글꼴(예: Arial 또는 Book Antiqua)을 선택해야 합니다. 이렇게 하려면 기본 MySQL 쿼리 브라우저 창에서 다음을 엽니다. 도구 메뉴(도구)를 선택하고 옵션을 선택합니다. 나타나는 옵션 창의 왼쪽 창에서 일반 옵션( 공통 매개변수) 코드 글꼴 필드의 오른쪽 영역에 있는 목록에서 선택합니다. 원하는 글꼴. 적용 버튼을 클릭하세요.

서버와의 연결을 끊으려면 MySQL 쿼리 브라우저 창을 닫으면 됩니다.

이것으로 MySQL에 대한 소개를 마치고 결과를 요약합니다.

1.6. 요약

이 장에서 다룬 내용 MySQL DBMS및 그래픽 유틸리티 MySQL 관리자 및 MySQL 쿼리 브라우저. MySQL 서버를 설치하고 구성하는 상당히 복잡한 절차를 숙지했으며, 서버를 관리하고 연결하는 방법을 배웠습니다. 또한 관계형 데이터베이스의 작동 방식과 자신만의 데이터베이스를 설계하는 방법도 배웠습니다.

따라서 다음 단계는 MySQL에 데이터베이스를 구축하는 것입니다. 두 번째 장은 이것에 전념합니다. 테이블을 생성하고, 테이블에 정보를 입력하고, 데이터베이스에서 필요한 정보를 찾는 방법을 보여줍니다.

제 2 장
SQL을 이용한 데이터베이스 관리

이번 장에서는 MySQL DBMS에서 데이터를 다루는 방법과 그 구조를 결정하는 방법, 데이터를 추가, 변경, 삭제하는 방법을 배우게 됩니다. 이러한 작업은 범용 구조 쿼리 언어인 SQL에 의해 수행됩니다. 표준 수단액세스 관계형 데이터베이스데이터.

다양한 MySQL 서버 클라이언트 애플리케이션 중 하나를 사용하여 SQL 명령을 실행할 수 있습니다. 이 장에서는 응용 프로그램을 다루지 않습니다. 타사 개발자. MySQL AB에서 만든 애플리케이션인 mysql 명령줄 유틸리티와 그래픽 MySQL 쿼리 브라우저 유틸리티만 소개합니다.

모든 데이터 작업은 두 유틸리티 모두에서 가능합니다. MySQL 쿼리 브라우저는 데이터베이스 작업에 편리합니다. 해당 구성 요소가 명확하게 표시되고, SQL UPDATE 연산자를 사용하지 않고 데이터를 직접 편집할 수 있으며, 쿼리 작업(예: 특수 도구를 사용하여 빌드할 필요 없음)이 가능합니다. 테이블 및 열 이름 수동 입력), 쿼리를 파일에 저장, 쿼리 결과 내보내기 등이 가능합니다. http://dev.mysql.com/doc/query-browser/ru/index.html에 있는 러시아어 문서를 참조하여 MySQL 쿼리 브라우저의 모든 기능에 대해 알아볼 수 있습니다.

먼저 MySQL 쿼리 브라우저와 명령줄에서 SQL 명령을 실행하는 방법을 배운 다음 SQL 명령의 구문만 다룹니다.

2.1. SQL 명령 실행

SQL 명령을 실행하기 전에 실행 중인 MySQL 서버에 연결해야 합니다(이를 수행하는 방법은 1장에서 설명했습니다). 이 섹션에서는 SQL 명령을 생성하고 실행을 위해 서버에 제출하는 방법을 배웁니다.

명령줄을 사용하는 경우 SQL 명령을 실행하려면 명령줄 창에 해당 텍스트를 입력하고 Enter 키를 눌러 명령을 서버로 보냅니다. 러시아어 데이터 인코딩 문제를 방지하려면 데이터 작업을 시작하기 전에 다음 명령을 실행하십시오.

세트 이름 cp866;

그림 1에서 이 명령을 실행한 결과를 볼 수 있습니다. 2.1.

쌀. 2.1.명령줄에서 인코딩 설정


SET NAMES 명령은 다음과 같은 경우 반복되어야 합니다. 모든 사람명령줄을 사용하여 서버에 연결합니다. 이 명령은 이 클라이언트 애플리케이션(mysql 유틸리티)이 CP-866 인코딩(Windows 명령줄 인코딩)을 사용하고 서버가 클라이언트 애플리케이션과 통신할 때 자동으로 인코딩 변환을 수행함을 서버에 알려줍니다.

인코딩을 변경한 후 명령줄에 SQL 명령을 입력할 수 있습니다. 명령 결과 및 요청된 데이터에 대한 메시지가 명령줄 창에 직접 표시됩니다(그림 2.2).

쌀. 2.2.명령줄에서 SQL 쿼리 실행


mysql 유틸리티를 사용하면 여러 줄의 명령을 입력할 수 있습니다(그림 2.3에서는 SHOW DATABASES 명령이 이런 방식으로 입력되었습니다). 세미콜론을 입력하지 않은 경우 - 명령 끝의 표시이며, 다음을 누르면 키 입력유틸리티는 명령을 서버로 보내지 않지만 명령을 계속 입력하라는 메시지를 표시합니다. 여러 줄 명령을 취소하려면 \c를 입력합니다(그림 2.3).

쌀. 2.3.여러 줄 명령


MySQL 쿼리 브라우저를 사용하는 경우 인코딩을 설정할 필요가 없습니다. 이 프로그램은 UTF-8 인코딩으로 작동하며 자체적으로 이를 서버에 보고합니다. 그러나 MySQL Query Browser에서는 쿼리 영역(SQL 명령의 텍스트가 입력되는 영역, 그림 2.4)에 러시아어 문자가 표시되는 데 문제가 있습니다. 이 문제를 해결하려면 쿼리 영역에 사용되는 글꼴을 변경해야 합니다. (이를 수행하는 방법은 이전 장의 끝 부분에서 설명했습니다.) 글꼴은 한 번만 변경하면 됩니다.

쌀. 2.4. MySQL 쿼리 브라우저에서 SQL 쿼리 실행


쿼리 영역에서는 그림과 같이 여러 개의 SQL 명령을 한 번에 입력할 수 있습니다. 2.4. 현재 명령(커서는 해당 줄 중 하나에 있음)은 흰색 배경으로 강조 표시되고 나머지 명령은 밝은 회색 배경에 표시됩니다. 현재 명령을 실행하려면 프롬프트 영역 오른쪽에 있는 실행 버튼을 클릭하거나 Ctrl+Enter 키 조합을 클릭하면 됩니다. 명령을 실행하면 요청한 데이터가 결과 영역에 표시되고, 명령 결과에 대한 메시지가 이 영역 하단에 표시됩니다.

이제 SQL 명령을 입력하는 방법을 배웠으므로 이러한 명령을 사용하여 데이터 관리를 시작하겠습니다. 먼저, 데이터베이스 전체와 함께 작동하도록 설계된 명령을 살펴보겠습니다.

2.2. 데이터베이스 생성

이 섹션에서는 데이터베이스를 생성 및 삭제하고, 기본 인코딩을 변경하고, 현재 데이터베이스를 선택하고, 특정 MySQL 서버의 모든 데이터베이스 목록을 보는 방법을 배웁니다.

데이터베이스를 생성하려면 다음 명령을 실행하세요.

데이터베이스 생성<Имя базы данных>;

예를 들어 다음 명령은

데이터베이스 만들기 영업부;

SalesDept라는 데이터베이스를 만듭니다.

어떤 이유로든 새 데이터베이스에 대해 처음에 지정한 인코딩과 다른 기본 인코딩을 설정해야 하는 경우 MySQL 설정그런 다음 데이터베이스를 생성할 때 문자 값에 대해 원하는 인코딩(문자 집합) 및/또는 비교(정렬) 규칙을 지정할 수 있습니다.

데이터베이스 생성<Имя базы данных>

캐릭터 세트<Имя кодировки>

함께 합치다<Имя правила сравнения>;

예를 들어, 귀하가 다음에 있는 경우 새로운 기지 CP-1251 인코딩에 있는 데이터를 가져오면 다음과 같은 방식으로 데이터베이스를 생성할 때 이 인코딩을 표시합니다.

데이터베이스 만들기 영업부

문자 집합 cp1251 대조 cp1251_general_ci;

조언

MySQL에서 사용되는 인코딩 목록을 보려면 SHOW CHARACTER SET 명령을 실행하세요. 기호 값을 비교하는 규칙 목록을 보려면 SHOW COLLATION 명령을 사용하십시오. 이 경우 다음을 사용할 수 있습니다. LIKE 연산자: 예를 들어 CP-1251 인코딩에 대한 모든 비교 규칙을 보려면 SHOW COLLATION LIKE %1251%; 명령을 실행합니다. 비교 규칙 이름의 끝 "_ci"(대소문자 구분 안 함)는 비교 및 ​​정렬 시 문자의 대소문자를 고려하지 않음을 의미하며, 끝 "_cs"(대소문자 구분) - 대소문자는 고려됩니다. “_bin”(바이너리) – 비교 및 ​​정렬은 다음에 의해 수행됩니다. 숫자 코드문자. 대부분의 비교 규칙에 대해 설명(즉, 문자가 정렬되는 순서)을 찾을 수 있습니다. 텍스트 값) 웹페이지 http://www.collation-charts.org/mysql60/에 있습니다.

데이터베이스를 생성할 때 지정된 인코딩은 기본적으로 이 데이터베이스의 테이블에 사용되지만 다른 인코딩을 지정할 수 있습니다.

다음 명령을 사용하여 데이터베이스의 문자 값에 대한 인코딩 및/또는 비교 규칙을 변경할 수 있습니다.

데이터베이스 변경<Имя базы данных>

캐릭터 세트<Имя кодировки>

함께 합치다<Имя правила сравнения>;

이 경우 기존 데이터베이스 테이블에 사용된 인코딩은 동일하게 유지됩니다. 새로 생성된 테이블의 기본 인코딩만 변경됩니다.

불필요하거나 잘못 생성된 데이터베이스를 제거하려면 다음 명령을 실행하십시오.

데이터베이스 삭제<Имя базы данных>;

주목!

데이터베이스 삭제는 데이터베이스의 모든 테이블과 테이블에 저장된 데이터를 모두 삭제하기 때문에 매우 중요한 작업입니다. 삭제하기 전에 생성하는 것이 좋습니다 백업 복사본데이터 베이스.

다음 명령을 사용하여 이 MySQL 서버에 생성된 데이터베이스 중 하나를 현재 데이터베이스로 선택할 수 있습니다.

사용<Имя базы данных>;

예를 들어,:

영업부 사용;

그러면 테이블 이름 앞에 데이터베이스 이름을 붙이지 않고도 해당 데이터베이스의 테이블에 대해 작업을 수행할 수 있습니다. 예를 들어 SalesDept 데이터베이스의 Customers 테이블에 액세스하려면 SalesDept.Customers 대신 Customers를 작성하면 됩니다. 현재 데이터베이스를 지정하면 다른 데이터베이스의 테이블에 액세스할 수 있지만 데이터베이스 이름을 접두사로 사용해야 합니다. 현재 데이터베이스 선택은 서버와의 연결을 끊거나 다른 현재 데이터베이스를 선택할 때까지 저장됩니다.

특정 MySQL 서버에 존재하는 모든 데이터베이스 목록을 보려면 다음 명령을 실행하십시오.

데이터베이스 표시;

아직 데이터베이스를 만들지 않았더라도 결과 목록에는 3개가 표시됩니다. 시스템 기반데이터.

INFORMATION_SCHEMA는 다른 모든 데이터베이스, 그 안의 데이터 구조 및 모든 종류의 객체(테이블, 열, 기본 및 외래 키, 액세스 권한, 저장 프로시저, 인코딩 등)에 대한 정보를 얻을 수 있는 정보 데이터베이스입니다. 이 데이터베이스는 사용 가능합니다. 이는 읽기 전용이고 가상이므로 디스크에 디렉토리로 저장되지 않습니다. 이 데이터베이스에서 요청된 모든 정보는 MySQL 서버에 의해 동적으로 제공됩니다.

MySQL은 MySQL 서버에서 사용하는 유틸리티 데이터베이스입니다. 등록된 사용자 및 접근 권한에 대한 정보를 저장합니다. 참고정보등등

테스트는 시험해 보거나 간단히 삭제할 수 있는 빈 데이터베이스입니다.

따라서 데이터베이스 전체에서 수행되는 기본 작업인 CREATE DATABASE(생성), ALTER DATABASE(변경), DROP DATABASE(삭제), USE(현재 데이터베이스 선택) 및 SHOW DATABASES(목록 보기) 명령을 마스터했습니다. 데이터베이스). 다음으로 테이블 연산을 살펴보겠습니다. 이 경우 데이터베이스를 현재 데이터베이스로 선택하고 해당 테이블로 작업하고 있다고 가정합니다.

2.3. 테이블 작업

이번 섹션에서는 테이블을 생성, 수정, 삭제하는 방법과 테이블 정보를 보는 방법, 현재 데이터베이스의 모든 테이블 목록을 살펴봅니다. 가장 어려운 명령인 테이블 생성부터 시작해 보겠습니다.

테이블 만들기

테이블을 생성하려면 목록 2.1에 표시된 명령을 실행하세요.

목록 2.1.테이블 생성 명령

테이블 만들기<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


보시다시피, 테이블 생성 명령에는 많은 매개변수가 포함될 수 있지만 그 중 대부분은 선택사항입니다(목록 2.1에서는 이러한 매개변수가 대괄호). 실제로 테이블을 생성하려면 해당 이름과 모든 열의 이름 및 유형을 지정하기만 하면 됩니다. 필요한 경우 다른 매개변수가 사용됩니다.

먼저 CREATE TABLE 명령을 익히는 데 도움이 되는 몇 가지 예를 살펴보고 많은 매개변수를 연구하지 않고도 즉시 자신만의(구조가 간단한) 테이블을 생성해 보겠습니다.

1장에서 설계한 데이터베이스를 구축한다고 가정해 보겠습니다. 이전 섹션의 명령을 사용하여 빈 SalesDept 데이터베이스를 생성하고 이를 현재 데이터베이스로 선택했습니다. 이제 Customers, Products 및 Orders라는 세 개의 테이블을 만들어 보겠습니다. Listing 2.2에서는 Customers 테이블을 생성하는 명령을 보여줍니다.

목록 2.2. Customers 테이블을 생성하는 명령

테이블 고객 만들기

(ID SERIAL,

이름 VARCHAR(100),

전화 VARCHAR(20),

주소 VARCHAR(150),

등급 INT,

기본 키(id))


이 명령은 매개 변수를 사용했습니다. 첫째, 테이블 이름, 둘째, 테이블이 구성될 열의 이름과 유형입니다(1장의 표 1.1 참조).

Id - 레코드 식별자입니다. 이 열에 SERIAL 유형을 할당하여 테이블 행에 자동으로 번호를 매길 수 있습니다. 예어 SERIAL은 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE를 나타냅니다. 이는 큰 정수(BIGINT) 양수(UNSIGNED) 숫자를 열에 입력할 수 있는 동시에 정의되지 않은 중복 값(NOT NULL UNIQUE)이 자동으로 제어된다는 의미입니다. 테이블에 행을 추가할 때 이 열에 대한 값을 지정하지 않으면 MySQL 프로그램은 이 열에 다음 시퀀스 번호(AUTO_INCREMENT)를 입력합니다.

메모

NULL은 값이 없음을 나타내는 상수입니다. 해당 열에 NULL 값이 포함되어 있으면 해당 열이 없는 것으로 간주됩니다. 특정 값이 열은 설정되지 않았습니다(이것이 바로 우리가 NULL을 정의되지 않은 값이라고 부르는 이유입니다). NULL을 혼동해서는 안 됩니다. 빈 줄(“”) 또는 숫자 0. NULL 값은 특별한 방식으로 처리됩니다. 대부분의 함수와 연산자는 인수 중 하나가 NULL이면 NULL을 반환합니다. 예를 들어 비교 결과 1 = 1은 참값(TRUE)이고, 비교 결과 NULL = NULL은 정의되지 않은 값(NULL), 즉 정의되지 않은 두 값은 동일한 것으로 간주되지 않습니다.

Nam은 의뢰인의 이름, Phone은 전화번호, Address는 주소입니다. 이러한 열에는 문자 값이 포함되므로 VARCHAR 유형을 할당했습니다. 열 값에 허용되는 최대 문자 수는 괄호 안에 표시됩니다.

셋째, 테이블 생성 명령에 PRIMARY KEY(id) 절을 포함하여 id 열이 테이블의 기본 키가 되도록 지정했습니다.

넷째, 이 테이블에 대해 두 개의 선택적 매개변수를 지정했습니다. ENGINE 매개변수는 테이블 유형을 지정합니다. Customers 테이블에 InnoDB 유형을 할당했습니다. 이 유형만이 테이블 간 관계의 무결성을 유지하기 때문입니다. 테이블 유형에 대한 자세한 내용은 "선택적 테이블 속성" 섹션에서 설명합니다. CHARACTER SET 매개변수는 테이블의 데이터에 대한 기본 인코딩을 지정합니다. 이름, 전화 및 주소 열에 대해 별도로 인코딩을 설정하지 않았으므로 이러한 열의 데이터는 Customers 테이블의 기본 인코딩인 UTF-8로 저장됩니다.

우리가 살펴볼 다음 예는 목록 2.3에 표시된 Products 테이블 생성 명령입니다.

목록 2.3.제품 테이블 생성 명령

테이블 제품 만들기

(ID SERIAL,

설명 VARCHAR(100),

세부정보 텍스트,

가격 DECIMAL(8,2),

기본 키(id))

엔진 InnoDB 문자 세트 utf8;


이 명령은 Customers 테이블을 생성하는 명령과 매우 유사하며 테이블 이름과 열 집합만 다릅니다. Products 테이블의 id(제품 번호) 및 설명(제품 이름) 열에는 이미 우리에게 익숙한 유형이 있습니다. 세부정보 열은 TEXT 유형입니다. 컬럼에 긴 값이 포함될 경우 VARCHAR 유형 대신 이 유형을 사용하는 것이 편리합니다. 모든 VARCHAR 컬럼 값의 총 길이는 각 테이블에 대해 65,535바이트로 제한되며, 총 길이에는 제한이 없습니다. TEXT 열. TEXT 유형의 단점은 테이블의 외래 키에 이러한 열을 포함할 수 없다는 것, 즉 이러한 열을 기반으로 테이블 간의 관계를 만들 수 없다는 것입니다.

가격 열은 DECIMAL 유형으로, 반올림 오류를 피하는 것이 중요한 화폐 금액 및 기타 값을 저장하도록 설계되었습니다. 우리는 괄호 안에 두 개의 숫자를 표시했습니다. 그 중 첫 번째 숫자가 결정합니다. 최대 금액열 값의 자릿수에서 두 번째는 소수 구분 기호 뒤의 최대 자릿수입니다. 즉, 제품 가격은 정수 부분(6 = 8–2)에 최대 6자리, 소수 부분에 최대 2자리를 포함할 수 있습니다.

마지막 예제는 목록 2.4에 표시된 Orders 테이블을 생성하는 명령입니다.

목록 2.4.주문 테이블 생성 명령

테이블 주문 만들기

(ID SERIAL,

날짜 DATE,

product_id BIGINT UNSIGNED NOT NULL,

서명되지 않은 수량 INT,

금액 DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

기본 키(id),

외래 키(product_id) 참조 제품(id)

업데이트 캐스케이드에 대한 제한 삭제 시,

FOREIGN KEY (customer_id) 참조 고객 (id)

업데이트 계단식 삭제 제한 시)

엔진 InnoDB 문자 세트 utf8;


Orders 테이블의 특별한 기능은 외래 키가 있다는 것입니다. product_id 열에는 Products 테이블의 제품 번호가 포함되고 customer_id 열에는 Customers 테이블의 고객 번호가 포함됩니다(1장의 표 1.2 참조). 제품 및 고객 번호는 큰 양의 정수이므로 product_id 및 customer_id 열을 BIGINT UNSIGNED 유형에 할당했습니다.

또한 연결 무결성(1장에서 무결성에 대해 이야기했습니다)의 자동 유지 관리를 보장하기 위해 다음을 보고했습니다. MySQL 프로그램각 외래 키가 어떤 기본 키에 해당하는지를 나타냅니다. 따라서 FOREIGN KEY(customer_id) REFERENCES Customers(id) 구성은 customer_id 열에 Customers 테이블의 id 열에 있는 값과 null 값만 포함될 수 있으며 다른 값은 금지된다는 의미입니다. product_id 열의 경우 유사한 제약 조건을 설정하고 정의되지 않은 제품에 주문이 등록되는 것을 방지하기 위해 이 열에 NOT NULL 속성을 할당했습니다. 또한 각 연결의 무결성을 유지하기 위한 규칙을 명시했습니다(1장에서도 이에 대해 논의했습니다). ON DELETE RESTRICT 규칙은 해당 고객이 등록된 주문이 있는 경우 고객 기록을 삭제할 수 없으며, 해당 제품이 다른 사람에 의해 주문된 경우 제품 기록을 삭제할 수 없음을 의미합니다. ON UPDATE CASCADE 규칙은 Customers 테이블의 고객 번호나 Products 테이블의 항목 번호가 변경되면 Orders 테이블에도 해당 변경 사항이 적용됨을 의미합니다.

메모

우리는 Orders 테이블을 다음과 같이 생성했습니다. 최후의 조치고객 및 제품 테이블의 기본 키는 이를 참조하는 주문 테이블의 외래 키보다 먼저 생성되어야 하기 때문입니다. 그러나 어떤 순서로든 외래 키 없이 테이블을 생성한 다음 ALTER TABLE 명령을 사용하여 외래 키를 추가하는 것이 가능합니다. 이에 대해서는 "테이블 구조 변경" 하위 섹션에서 살펴보겠습니다.

예제에서는 테이블 생성 명령의 매개변수 중 일부만 살펴보았습니다. 이제 테이블을 생성할 때 유용할 수 있는 모든 주요 매개변수를 나열하겠습니다. "MySQL의 데이터 유형" 섹션에서는 열 유형에 대해 설명하고 "열 속성" 섹션에서는 키 열 설정에 대해 설명하며 마지막으로 "키 열 및 인덱스" 섹션에서는 선택적 테이블 속성에 대해 설명합니다. .

MySQL의 데이터 유형

이미 알고 있듯이 테이블을 생성할 때 각 열에 대한 데이터 유형을 지정해야 합니다. MySQL은 숫자, 날짜/시간 및 데이터를 저장하는 다양한 데이터 유형을 제공합니다. 문자열(텍스트). 또한, 이 책에서는 다루지 않는 공간 객체를 저장하기 위한 데이터 유형이 있습니다.

고려해 봅시다 숫자 유형데이터.

조금[(<Количествобитов>)].

지정된 비트 수를 포함하는 비트 수입니다. 비트 수를 지정하지 않으면 해당 수는 1비트로 구성됩니다.

-128~127 또는 (UNSIGNED 속성이 지정된 경우) 0~255 범위의 정수입니다.

부울 또는 부울.

이는 TINYINT(1) 데이터 유형과 동의어입니다(괄호 안의 숫자는 표시할 자릿수입니다. 아래 참고 사항 참조). 이 경우, 0이 아닌 값은 참(TRUE)으로 간주되고, 0 값은 거짓(FALSE)으로 간주됩니다.

-32,768 ~ 32,767 또는 (UNSIGNED 속성이 지정된 경우) 0 ~ 65,535 범위의 정수입니다.

-8,388,608 ~ 8,388,607 또는 (UNSIGNED 속성이 지정된 경우) 0 ~ 16,777,215 범위의 정수입니다.

INT 또는 INTEGER.

-2,147,483,648 ~ 2,147,483,647 또는 (UNSIGNED 속성이 지정된 경우) 0 ~ 4,294,967,295 범위의 정수입니다.

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 또는 (UNSIGNED 속성이 지정된 경우) 0 ~ 18,446,744,073 70 9,551,615 범위의 정수입니다.

BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE(자동으로 증가하는 고유 값을 허용하는 부호 없는 큰 정수) 표현식과 동의어입니다. NULL 값금지). 자동 생성에 사용됩니다. 고유한 값칼럼에서 기본 키. 이 하위 섹션에서는 UNSIGNED 및 AUTO_INCREMENT 속성에 대한 설명을 찾을 수 있고 "열 속성" 섹션에서는 NOT NULL 및 UNIQUE 속성에 대한 설명을 찾을 수 있습니다.

메모

모든 정수형 BOOL(BOOLEAN) 및 SERIAL을 제외한 데이터의 경우 ZEROFILL 매개변수와 함께 사용되는 표시 자릿수를 괄호 안에 지정할 수 있습니다. 숫자에 더 적은 자릿수가 포함되어 있으면 출력 시 왼쪽이 0으로 채워집니다. 예를 들어 테이블 열이 INT(5) ZEROFILL로 정의된 경우 "1234567" 및 "12345" 값은 그대로 표시되고, "123" 값은 "00123"으로 표시됩니다. BIT 데이터 형식의 경우 숫자의 크기, 즉 저장되는 최대 비트 수를 괄호 안에 표시합니다.

나는 다음 명령을 실행했습니다.

/etc/init.d/mysql 시작

그런데 이 오류가 보이네요

오류 1045 (28000) 사용자의 액세스가 거부되었습니다....

이 명령을 시도한 후:

/etc/init.d/mysql 시작

비밀번호를 입력했는데 같은 오류가 다시 표시됩니다.

다음 명령:

결과:

오류 1049 (42000) 알 수 없는 데이터베이스 "시작".

그리고 이 명령을 실행하면:

Sudo 서비스 mysql 시작

MySQL 서버의 성공이 시작되었습니다. 시원한!

그럼 다른 팀들은 어떻게 됐나요? 왜 오류가 발생합니까?

"mysql 서버를 시작/중지하는 방법" 관련 내용

처음 두 명령은 루트로 실행되지 않았으므로 이는 예상된 동작입니다. mysql을 중지/시작하려면 루트여야 합니다.

Sudo /etc/init.d/mysql 시작

작동해야합니다. 실제로 나에게는 다음과 같습니다.

Kojan:~> sudo /etc/init.d/mysql chris의 재시작 비밀번호: MySQL 데이터베이스 서버 중지 중: mysqld. MySQL 데이터베이스 서버 시작: mysqld. 손상되었거나 완전히 닫히지 않았는지 확인하고 업그레이드가 필요한 테이블..

이미 실행 중이었으므로 실행 대신 다시 시작을 사용했지만 효과는 동일합니다. 비밀번호를 정확하게 입력하셨나요? 🙂 이 작업이 중단되도록 sudo 구성을 편집하셨나요?

이것..

Sudo /etc/init.d/mysql - 루트 -p 시작

인수가 잘못되었습니다. init.d 스크립트는 시작, 중지 또는 다시 시작만 허용합니다. 수행할 작업을 알려주는 단 한 단어입니다. 시도한 것처럼 여러 인수를 제공할 수 없습니다.

어쨌든, 짧은 대답은 실제로 작업하게 된 방법이 권장되는 방법이라는 것입니다. service는 시간이 지남에 따라 모든 init.d 스크립트를 대체하므로 service 사용에 익숙해져야 합니다. 링크하신 페이지는 3년된 페이지라 소금으로 찍어야 합니다 :)

또한 "mysql"이 올바른 서비스 이름인지 다시 확인하는 데 도움이 됩니다. 내 경우에는 그렇지 않습니다. 계속해서 다음과 같은 응답을 받았습니다: mysql: unrecognized service on start

서비스 mysql 상태

그런 다음 /etc/init.d를 확인하고 프로세스 이름을 지정하는 mysqld라는 스크립트를 찾았습니다. mysqld 및 prog = mysqld

그럼 내가 그랬어

서비스 mysqld 상태 서비스 mysqld 중지 서비스 mysqld 시작

그리고 그들은 모두 훌륭하게 일했습니다.

Ubuntu 12.10 이상의 경우:

MySQL을 시작하세요:

Sudo 시작 mysql

MYSQL을 다시 시작하세요:

Sudo restart mysql # 서비스가 실행 중이어야 합니다.

MySQL을 중지합니다:

Sudo stop mysql # 서비스가 실행 중이어야 합니다.

실제로 Ubuntu 시스템에 mysql-workbench를 설치할 때 이상한 오류가 발생했습니다. 그 후 다음 명령을 사용하여 mysql 서비스를 시작하려고했습니다.

서비스 mysql 시작

그래서 MySQL 서버가 설치되지 않았다는 해결방법을 얻어서 설치했더니 문제가 해결되었습니다. MySQL 서버를 설치하는 명령:

Sudo apt-get 설치 mysql-server

성공적으로 설치한 후 다음과 같이 MySQL 서버를 시작합니다.

서비스 mysql 시작

두 가지 경우(서버 실행 중/서버 다운)를 처리하는 작은 스크립트:

#!/bin/bash 서비스 mysql 재시작 if [ "$?" != "0" ]; 그런 다음 mysql start fi를 서비스하십시오.

~ 후에 MySQL 설치시스템에서 다음을 수행하십시오.

$service mysql 상태

서비스가 다음을 수행하는 경우:

내 서비스를 중지하려면 다음을 수행하세요.

상당수의 인터넷 프로젝트에서는 MySQL DBMS를 데이터베이스 저장소로 사용합니다. 이 모든 것에는 MS SQL, mSQL, PostrgreSQL, Oracle 등과 같은 선택할 수 있는 다른 옵션이 있지만 거의 모든 호스팅 업체는 MySQL 데이터베이스 사용 기능을 포함할 가능성이 높은 서비스를 제공합니다. 이러한 인기는 많은 요인으로 인해 발생했을 수 있습니다. 좋은 이유, 그 중 하나는 제품에 열려 있는 원천 , 다시 말해서 오픈 소스 , 누구나 얻을 수 있습니다(Windows 버전에는 일부 예약이 있습니다). PHP/MySQL, Perl/MySQL의 조합이 가능하다는 의견도 있습니다. 큰 지표 속도, 다른 경우에는 달성하기가 훨씬 더 어렵습니다. 또한 표준 빌드의 PHP에는 MySQL에 대한 지원이 내장되어 있습니다.

대부분의 다른 DBMS와 마찬가지로 MySQL 서버에서 쿼리를 생성하려면 언어가 사용됩니다. SQL. SQL은 데이터베이스 작업을 위한 주요 언어이지만 각 데이터베이스에는 고유한 "방언"이 있을 수도 있습니다. SQL 언어, 이는 특정 유형의 DBMS에 내재되어 있습니다.

모든 데이터베이스와 마찬가지로 데이터베이스 서버가 제대로 작동하는 데 필요한 특정 표준이 있습니다. 시스템 속도 저하의 원인 중 하나는 다음과 같은 복잡한 SQL 쿼리 때문일 수 있습니다. 장기실행을 위해. 무거운 SQL 쿼리 만들다 과부하이는 일반적으로 시스템 전체의 성능에 영향을 미칩니다. 시스템 속도 저하로 인해 여러 가지 추가 문제가 발생할 수 있는 "전투" 서버에서는 이는 때때로 매우 중요할 수 있습니다.

이러한 요청은 원칙적으로 수행되어야 하지만 복잡함으로 인해 동결된 요청을 대기열에서 제거해야 하는 경우 어떻게 해야 합니까?
이 문제에 대한 "서투른" 해결책으로 널리 알려진 방법이 있는데, 이는 MySQL 서버를 다시 시작하는 것입니다.

종종 더 합리적인 또 다른 방법이 있는데, 이는 문제가 있는 사람을 “죽이는” 것입니다. MySQL 쿼리. 이 작업은 SSH를 통해 수행하거나 phpMyAdmin과 같은 일부 유틸리티를 사용하여 수행할 수 있습니다.

SSH를 통해 무거운 MySQL 쿼리 제거:

1. SSH를 통해 서버에 로그인
2. 다음 명령을 실행합니다.

$ mysql -u 사용자 -p

USER 대신 MySQL 사용자를 지정합니다.
3. 비밀번호를 입력하세요. 계정사용자
4. 명령을 실행합니다

프로세스 목록 표시;

(끝에 세미콜론을 포함하는 것을 잊지 마세요)
5. 문제가 있는 요청의 ID를 알아보세요
6. 명령을 실행합니다

쿼리 종료 11223

11223 대신 제거해야 하는 요청의 ID를 나타냅니다.
phpMyAdmin을 사용하면 이 작업이 더욱 쉬워집니다.

phpMyAdmin에서 무거운 MySQL 쿼리 제거:

프로세스 목록 표시

4. 요청 목록이 나타납니다. 필수 요청"마침" 링크를 클릭하세요



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: