Windows에서 MySQL 수동 설치. 명령줄을 사용한 MySQL 관리 기본 사항 명령줄에서 mysql 서버 중지




Win 32의 경우 배포판 선택: Windows(x86, 32비트), 우편 아카이브.

Win 64의 경우: Windows(x86, 64비트), 우편 아카이브.

다운로드 버튼을 클릭하면 등록 양식이 표시되며 아래 링크를 클릭하여 건너뛸 수 있습니다. 아니요, 다운로드로 이동하세요..

2. 설치 폴더를 생성합니다. 예를 들어 . 그리고 아카이브의 내용을 압축 해제하여 폴더가 빈, 데이터, 문서 및 기타설치 폴더의 루트에 있었습니다.

3. 구성 파일(my.ini) 생성으로 이동하겠습니다. 일반적인 파일 중 하나를 기본으로 사용합니다.

  • my-small.ini - 때때로 MySQL을 사용하고 서버가 많은 리소스를 차지하는 것을 원하지 않는 사람들에게 적합합니다.
  • my-medium.ini도 가벼운 구성이지만 정기적으로 MySQL을 사용하는 사용자에게 적합합니다(홈 웹 서버에 적합한 선택).
  • my-large.ini 및 my-huge.ini는 전용 MySQL 서버로 사용되는 시스템용입니다. 그러나 추가 MySQL 성능이 필요한 경우 my-large.ini를 홈 서버로 사용할 수 있습니다(요즘 512MB RAM은 그다지 많지 않음).
  • my-innodb-heavy-4G - 4GB RAM이 있고 InnoDB 테이블만 사용하는 전용 서버용.

이 예에서는 기본으로 my-medium.ini를 선택했습니다. 이름을 my.ini로 바꾸고 설치 폴더의 루트( C:\프로그램 파일\MySQL\MySQL 서버 5.5).

편집을 위해 열고(일반 메모장에서) 행 바로 뒤에 두 개의 매개변수를 추가합니다.

basedir=C:/Program Files/MySQL/MySQL 서버 5.5 datadir=C:/Program Files/MySQL/MySQL 서버 5.5/data

경로는 백슬래시(\)가 아닌 슬래시(/)를 사용합니다.

basedir은 설치 폴더의 경로입니다.

datadir - 데이터 폴더의 경로(모든 데이터베이스가 저장되는 위치). 때로는 성능을 개선하거나 안정성을 보장하기 위해 데이터를 별도의 드라이브에 저장하는 것이 좋습니다.

만일을 대비하여 다음은 변경 후 구성 파일의 일부입니다.

# MySQL 서버 basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_size = 8M

4. 다음 단계는 경로를 추가하는 것입니다. C:\프로그램 파일\MySQL\MySQL 서버 5.5\bin명령줄에서 MySQL을 더 쉽게 시작할 수 있도록 PATH 환경 변수에 추가합니다. 이렇게 하려면 시스템 속성 -> 고급 시스템 설정 -> 맨 아래의 고급 탭에서 "환경 변수..." 버튼을 엽니다. 열리는 창에서 경로를 찾을 때까지 시스템 변수를 스크롤합니다. 이 줄을 강조 표시하고 "편집..."을 클릭합니다. 줄 끝에 경로를 추가하고 기존 매개변수를 유지합니다.

경로는 세미콜론으로 구분됩니다. 경로의 시작과 끝에 세미콜론을 포함해야 합니다.

5. 테스트 실행을 수행하기 전에 Windows 방화벽에서 들어오는 포트 TCP 3306을 엽니다.


시스템에 선택적 방화벽이 설치되어 있는 경우 들어오는 연결을 위해 해당 방화벽에서 TCP 포트 3306도 열어야 합니다.

6. 지금 우리는 테스트 실행을 하고 있습니다. 관리자로 실행되는 명령 프롬프트에서(Seven 또는 Vista에서 UAC가 활성화된 경우 필요함) 다음을 실행합니다.

mysqld-콘솔

화면에 여러 줄이 표시됩니다. 실행에 성공하면 마지막 줄이 다음과 같이 표시됩니다.

버전: "5.5.9-log" 소켓: "" 포트: 3306 MySQL 커뮤니티 서버(GPL)

이 창을 열어두고 다른 명령줄 창을 엽니다. 여기에 다음을 입력합니다.

MySQL -u 루트

연결에 성공하면 명령줄 프롬프트가 표시됩니다. mysql>

우리가 어떤 기반을 가지고 있는지 봅시다:

데이터베이스를 보여줍니다;

SQL 쿼리 끝에 있는 세미콜론은 필수입니다!

팀 응답:


이제 우리는 마침내 서버가 작동하고 있음을 확신합니다.

7. 다음 단계로 넘어가면 MySQL 관리자 암호(루트 사용자)를 설정해야 합니다. 기본적으로 암호는 설정되어 있지 않으며 이를 수정해야 합니다. 동일한 MySQL 창에서 다음 명령을 입력합니다.

mysql UPDATE user SET password = PASSWORD("your_password") WHERE user = "root"; 사용

결과 확인:

사용자로부터 사용자, 호스트, 암호 선택;

스크린샷에서 볼 수 있듯이 비밀번호 열이 채워져 있으며 이는 비밀번호가 설정되었음을 의미합니다.

종료하기 전에 다음 명령을 실행하십시오.

플러시 특권;

이제 접속할 때 비밀번호를 입력해야 합니다. 이렇게 하려면 -p 스위치를 사용합니다.

MySQL -u 루트 -p

MySQL을 종료하려면 다음을 실행하십시오.

mysqladmin -u 루트 -p 종료

8. 마지막 단계는 MySQL을 Windows 시스템 서비스로 시작하는 것입니다.

시스템에 활성 MySQL 프로세스가 없는지 확인하십시오.

관리자로 실행되는 명령 프롬프트에서 다음을 실행합니다.

"C:\Program Files\MySQL\MySQL 서버 5.5\bin\mysqld" --설치

mysqld에 대한 경로는 전체로 지정되어야 합니다(PATH에 있더라도)!

서비스를 시작하려면 "컴퓨터 관리"를 열고 MySQL 서비스를 수동으로 시작하십시오.


또는 명령줄을 통해 더 쉽게:

그물 시작 mysql

서비스를 제거하려면 먼저 서비스를 중지하십시오.

그물 중지 mysql

실행:

"C:\Program Files\MySQL\MySQL 서버 5.5\bin\mysqld" --제거

친구들이 종종 행정에 대해 몇 가지 질문을 하는데, 같은 것을 100번 설명하는 대신 사이트에 그런 기사-노트를 작성하는 것이 어떨까 생각했습니다. 또한 이것은 때때로 모든 것을 머리에 보관할 수 없으며 어떤 식 으로든 참고 도서로 전환해야한다는 것을 스스로 알고 있기 때문에 그러한 메모를 직접 사용할 수있는 좋은 기회입니다. 따라서 이 사이트의 섹션 중 하나가 그러한 책이 되도록 하십시오. 오늘 우리는 커맨드 라인에서 MySQL DBMS로 작업하는 방법에 대해 이야기 할 것입니다. 예, 누군가 "Nakoy? 결국 phpMyAdmin이 있습니다.”나는 대답합니다. 신뢰할 수 있고 입증 된 도구로 모든 것을 쉽게 수행 할 수 있다면 WebMin, phpMyAdmin 등과 같은 모든 종류의 쓰레기를 설치하여 귀중한 서버 리소스를 낭비하는 이유는 무엇입니까? SSH 터널을 통해 터미널에서 설정하는 것이 우리의 선택입니다!

글쎄, 시작하자. 예를 들어 잘 알려진 PuTTY(A Free Telnet / SSH Client)를 통해 SSH를 통해 서버에 연결합니다. 이제 명령 설명으로 직접 이동하겠습니다.

mysql 프로그램으로 MySQL 서버에 로그인:

mysql -u 루트 -h 로컬 호스트 -p

-u 옵션은 로그인할 사용자를 지정합니다. -h 옵션은 호스트를 지정합니다. 비원격 서버를 설정하는 경우 일반적으로 localhost입니다. 마지막으로 -p는 ​​mysql 클라이언트 프로그램에 데이터베이스에 액세스하기 위한 암호를 입력하도록 지시합니다. mysql> 프롬프트를 확인하십시오. 여기에서 모든 명령을 입력합니다. 이제 루트 사용자로 mysql 환경에 있으면 데이터베이스 설정을 시작할 수 있습니다.

로그인하고 mysql 프롬프트가 화면에 나타납니다. 먼저 기존 데이터베이스 목록을 살펴보겠습니다. 이렇게 하려면 SHOW DATABASES 명령을 입력합니다.

응답을 통해 명령이 오류 없이 완료되었음을 알 수 있습니다. 이 경우 한 줄이 변경되었습니다. 이것은 모든 데이터베이스 목록을 포함하는 기본 mysql 데이터베이스를 나타냅니다. 그러나 사소한 세부 사항에 대해 너무 걱정할 필요는 없습니다. 마지막 숫자는 쿼리 실행 시간을 나타냅니다. SHOW DATABASES 명령을 다시 실행하여 데이터베이스가 생성되었는지 확인할 수 있습니다.

새 테스트 데이터베이스에서 테이블 생성을 시작하려면 현재 데이터베이스로 설정해야 합니다. 이렇게 하려면 USE 명령을 사용하십시오. 이 명령의 매개변수는 현재로 만들 데이터베이스의 이름을 지정합니다. -D 매개변수 뒤에 해당 이름을 지정하여 명령줄에서 현재 데이터베이스를 설정할 수도 있습니다. 계속해서 테스트 데이터베이스로 전환하겠습니다.
데이터베이스 전환:

사용 테스트;

MySQL의 권한

명령으로 권한 부여 승인하다.
권한은 사용자가 데이터베이스, 테이블 등 거의 모든 것에 액세스할 수 있는 방법을 정의합니다. 현재는 주어진 권한이 있는 MySQL 루트 수퍼유저만 테스트 데이터베이스에 액세스할 수 있습니다. 예를 들어 테스트 데이터베이스에 액세스하고 해당 데이터베이스의 정보로 작업할 admin(관리자)과 같은 다른 사용자를 생성해 보겠습니다. 그러나 시작하기 전에 GRANT 명령의 약간 단순화된 형식을 살펴보겠습니다.

메모: GRANT 명령은 사용자를 생성하는 방법으로 간주됩니다. 그러나 이후 버전의 MySQL에는 CREATE_USER 함수도 포함되어 있지만 GRANT가 여전히 선호됩니다.
이제 할당할 수 있는 권한이 필요합니다. 위의 모든 항목을 사용하여 다음 권한을 설정할 수 있습니다.

메모: MySQL을 사용하여 웹 애플리케이션과 통신하는 경우 여기에서 설명하는 CREATE, SELECT, INSERT 권한과 DELETE 및 UPDATE 권한(MySQL 설명서의 GRANT 및 REVOKE 구문 섹션에 설명됨)만 사용할 수 있습니다. 요구될 가능성이 높습니다. 많은 사람들이 실제로 필요하지 않을 때 모든 권한을 포기하는 실수를 범합니다. 이러한 권한이 실제로 성능 문제를 일으키는지 확인하려면 앱 개발자에게 문의하십시오.

관리 사용자를 생성합니다.

따라서 사용자가 생성됩니다. 이제 테스트해 봅시다. 먼저 프롬프트에서 quit를 입력하여 mysql을 종료합니다.

옵션은 GRANT 명령 섹션에 설명되어 있습니다. 이제 사용자의 모든 액세스를 거부합니다. 관리자 계정이 보안 문제를 일으키는 것으로 파악했다고 가정해 보겠습니다. 모든 권리를 철회하기로 결정합니다. 우리는 루트로 이동하여 필요한 작업을 수행합니다.
관리 사용자의 권한을 취소합니다.

REVOKE ALL ON test.* FROM "admin" @"localhost" ;

메모: 이 경우 사용자 접근이 간편하므로 하나의 데이터베이스에 대한 권한 철회는 문제가 되지 않습니다. 그러나 일반적으로 test.* 대신 *.*를 사용하여 다른 모든 데이터베이스에 대한 사용자의 액세스도 취소해야 합니다.

이제 DELETE 명령으로 계정을 완전히 삭제하는 방법과 MySQL 사용자 테이블을 살펴보겠습니다.

명령으로 계정 삭제 삭제.
MySQL 사용자 테이블은 사용자 목록과 그에 대한 정보입니다. 루트로 로그인했는지 확인하십시오. 기본 MySQL 데이터베이스를 사용합니다.

기본 mysql 데이터베이스 사용:

사용자 테이블이 필요합니다. 30개의 필드가 있으며 읽기가 어렵습니다. 읽기 쉽도록 SELECT 명령의 세 번째 형식을 사용합니다. 필수 필드는 Host(호스트) 및 User(사용자)입니다.
사용자 테이블에서 관리 사용자 찾기:

이제 정보가 있으므로 관리 사용자를 제거할 수 있습니다. 이는 DELETE 명령으로 수행됩니다. 구문은 다음과 같습니다.

DELETE 형식이 SELECT 형식과 다소 유사하다는 것을 알 수 있습니다. User 필드와 admin 값을 지정합니다. 그러면 사용자가 관리자인 사용자 테이블에서 항목이 제거되어 계정이 삭제됩니다. 이렇게 해봅시다:
관리 사용자 제거:

권한을 업데이트하려면 FLUSH PRIVILEGES 명령이 필요합니다.

오늘은 그게 다야. 모든 것이 간단합니다! ;)

좋은 하루 되세요, 동료들 🙂

예, 정확히 동료입니다. MySQL 명령 줄 (또는 개발자가 부르는 MySQL Shell)과 콘솔에서 MySQL 작업은 단순한 필사자에게 유용하지 않을 것입니다.

이 주제를 흥미롭게 다루려면 원칙적으로 phpMyAdmin 및 기타 인터페이스를 사용하지 않는 초보 시스템 관리자여야 합니다.

개인적으로 저는 MySQL 작업을 위해 phpMyAdmin을 기본으로 사용하는 것을 선호합니다. 나는 천성적으로 시각적인 사람이다. 그러나 실제로는 MySQL 명령줄에 대한 지식과 서버 콘솔에서 MySQL을 사용하는 기능이 단순히 필요한 경우가 있습니다.

나는 현재 그들 중 세 가지가 있습니다 :

  1. 대규모 데이터베이스 덤프를 가져와야 할 때 처음으로 MySQL 콘솔에서 작업을 접했습니다. phpMyAdmin을 통해 완전히 로드되지 않았습니다. 작업 실행 시간과 다운로드 파일의 크기에 대한 설정을 변경했음에도 불구하고 시간 초과 측면에서 중간 어딘가에서 떨어졌습니다. 원칙적으로 원하는 값을 선택하는 것이 가능했지만 너무 긴 과정인 것 같았습니다.
  2. 다음 번에 명령줄을 통해 MySQL로 작업해야 했던 것은 키를 사용하여 다른 테이블과 연결된 테이블에서 데이터를 삭제해야 할 때 외래 키 검사를 비활성화하는 것이었습니다. phpMyAdmin에서는 이 작업을 수행하는 방법을 찾지 못했습니다.
  3. 진지한 회사에서는 콘솔만 사용하여 phpMyAdmins 없이 MySQL을 사용합니다. 구체적으로 이유는 모르겠지만 지식이 풍부한 사람들은 보안과 관련이 있다고 말했습니다. 결과적으로 저를 포함한 모든 사람들이 MySQL 명령줄로 작업해야 했습니다 🙂

그러나 콘솔과 명령줄에서 MySQL로 작업하는 것은 일상적인 사용에 매우 적합합니다. 데이터베이스 작업을 위한 알려진 모든 시각적 프로그램은 여전히 ​​MySQL 콘솔 명령을 기반으로 작동합니다. 그러므로 그것을 좋아하는 사람 🙂

다른 OS에서 콘솔 실행

서버 콘솔에서 MySQL 명령줄을 시연할 것이므로 먼저 시작하는 것이 좋습니다.

작업은 간단하고 많은 사람들에게 친숙하며 "단축키"에 대한 지식이면 충분합니다.

Windows에서 콘솔 실행:

  • 관리자 권한으로 Windows 명령 프롬프트를 열려면 Win+R;
  • 우리는 명령을 입력 명령
  • 딸깍 하는 소리 입력하다키보드에서

Linux 배포판에서 콘솔 실행(터미널): 내가 작업한 우분투에서는 시스템 키 조합으로 충분합니다. Ctrl+Alt+T. 다른 Linux 기반 운영 체제에 대해서는 아무 말도 할 수 없습니다.

MacOS에서 콘솔 실행: 나 자신이 이것을하지 않았기 때문에. 아직 Mac이 없어서 불필요하다고 생각하지는 않지만 알아낼 수 있었던 한이 OS에는 터미널을 호출하는 "단축키"가 없습니다. 따라서 "apple"제품 사용자라면 OS 인터페이스를 통해 콘솔을 시작하십시오. 다행스럽게도 네트워크에 많은 설명서가 있습니다.

턱수염이 난 경험이 있는 일부 전문 시스템 관리자가 우연히 이 기사를 보게 될 경우를 대비하여 그러한 정보를 게시하는 것조차 조금 부끄럽습니다. 그는 "저자는 독자를 프로그래머로 간주하지만 동시에 콘솔 실행 방법을 가르칩니다 ... 일부 미친 :-)"라고 생각할 것입니다.

예, 매우 논리적입니다 🙂 그러나 전문 개발자와 함께 초보자도 여기에 올 수있는 상황을 고려합니다. 따라서 이미 언급했듯이 모든 범주의 사용자가 정보를 완전하고 액세스할 수 있도록 노력합니다.

기본 MySQL 콘솔 명령

따라서 먼저 콘솔에서 MySQL 명령줄에 액세스해야 합니다. 이렇게 하려면 서버 콘솔을 열고 MySQL을 전역적으로 서비스로 설치한 경우 "연결 확인"을 위해 다음을 작성합니다.

MySQL -V

콘솔 명령 mysql MySQL 명령줄인 동일한 이름의 유틸리티를 실행할 수 있습니다.

이를 통해 컴퓨터에 설치된 MySQL 버전을 확인하고 서비스로 설치되었는지 확인할 수 있습니다. 그렇다면 콘솔에 대한 응답으로 다음 텍스트와 같은 내용이 표시됩니다. .

예, 저는 Windows 아래에 앉아 있기 때문에 "진정한 코더"가 아닙니다. 하지만 그게 요점이 아닙니다. Unix 시스템에서 절차는 동일합니다.

갑자기 MySQL이 컴퓨터에 전체적으로 설치되지 않았거나 MySQL 파일 및 라이브러리가 있는 디렉토리만 있는 여러 버전의 MySQL로 작업해야 하는 경우 콘솔을 통해 MySQL을 시작하면 다음과 같습니다.

콘솔에서 다음 명령을 사용하여 MySQL 실행 파일이 있는 디렉터리(Windows에서는 적어도 mysql.exe)로 이동합니다.

Cd C:\OpenServer\modules\database\MySQL-5.7-x64\bin

물론 배포 키트의 경로는 다를 수 있습니다. 예를 들어 OpenServer에 포함된 MySQL 버전 중 하나를 실행하기로 결정했습니다.

그리고 MySQL을 시작하고 그 과정에서 버전을 확인합니다.

Mysql.exe -V

결과적으로 첫 번째 경우와 유사한 메시지가 콘솔에 표시되어야 합니다. mysql 버전 14.14 Distrib 5.7.16, Win64용(x86_64).

서버 콘솔을 통해 MySQL 명령 줄을 시작하면서 모든 것을 알아 냈으므로 이제 MySQL 서버에 직접 연결할 것입니다.

콘솔에서 MySQL 서버에 연결

MySQL 서버는 콘솔에서 액세스하려는 동일한 시스템에 반드시 있지는 않을 수 있습니다. 따라서 콘솔을 통해 원격 MySQL 서버에 연결할 수 있도록 mysql 유틸리티에는 필요한 설정을 지정할 수 있는 많은 매개 변수가 있습니다.

콘솔에서 MySQL 명령줄을 실행하려면 서버 콘솔에 다음을 작성하기만 하면 됩니다.

그러나 이 경우 다음과 같은 오류가 발생합니다. 오류 1045(28000): 사용자 'ODBC'@'localhost'에 대한 액세스가 거부되었습니다(암호 사용: NO).. 이것이 내 Windows에서 오류 메시지가 나타나는 방식입니다. Linux를 사용하는 경우 ODBC 대신 시스템에서 작업을 수행하는 시스템 사용자의 이름이 있습니다.

이 모든 것은 기본적으로 MySQL 서버에 연결할 때 콘솔이 비밀번호 없이 Windows의 ODBC 사용자를 사용하고 자체 비밀번호가 있는 Linux의 시스템 사용자를 사용하기 때문입니다. 기본 호스트는 localhost입니다. 이 사용자는 로컬 컴퓨터에서만 연결할 수 있습니다.

따라서 다른 사용자를 사용하여 MySQL 명령줄을 입력하거나 원하는 계정으로 MySQL 사용자를 생성하는 두 가지 옵션이 있습니다. 그러나 두 번째 방법의 경우 첫 번째 방법 없이는 여전히 할 수 없습니다 🙂 따라서 먼저 표준 사용자로 MySQL 서버에 연결합니다. 뿌리, MySQL이 컴퓨터에 설치될 때 생성되고 기본적으로 localhost에서 액세스가 허용됩니다.

MySQL -u 루트 -p

암호를 입력하라는 메시지가 표시되면 Enter를 누르십시오(입력하지 않은 경우에는 물론 MySQL을 설치할 때). 그런 다음 MySQL 서버에 연결되고 연결 ID가 할당되며 MySQL 명령줄에 대한 액세스 권한이 부여됩니다.

특정 호스트 이름 또는 IP가 있는 MySQL 서버에 연결하거나 다른 사용자로 로그인하려면 다음 형식으로 명령을 사용하십시오.

MySQL -u 사용자 이름 -p 사용자 비밀번호 -h MySQL_server_host_or_IP

물론 밑줄이 있는 키릴 문자 대신 라틴어로 데이터를 입력해야 합니다. 그런데 원하는 경우 이 명령을 약간 다른 형식으로 작성할 수 있습니다.

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP

어떤 이유로 콘솔에 MySQL 연결 비밀번호를 표시하지 않으려면(실제로는 맞습니다) 다음 명령을 사용할 수 있습니다.

MySQL -u 사용자 이름 -h MySQL_server_host_or_IP -p

암호가 명시적으로 지정되지 않았으므로 다음 단계에서 암호를 묻는 메시지가 표시됩니다. 또한 입력한 문자는 별표(와일드카드)로도 표시되지 않고 빈 문자열로 표시됩니다.

지정된 연결 설정 외에도 다음 매개 변수를 사용할 수 있으며 그 값은 위에 나열된 것과 동일한 방식으로 지정됩니다.

  1. --port 또는 -P - MySQL 서버에 대한 연결 포트를 지정합니다.
  2. --protocol — 연결에 사용되는 프로토콜(가능한 옵션: Windows 및 Linux용 TCP, Linux용 SOCKET, Windows용 PIPE 및 MEMORY);
  3. --socket 또는 -S - 이 매개변수는 소켓을 통해 연결하려는 경우에 유용하므로 매개변수 값은 소켓이 됩니다.
  4. -pipe 또는 -W - 이름이 지정된 "파이프라인" 또는 "파이프"를 연결에 사용하려는 경우 매개변수가 필요합니다.
  5. --shared-memory-base-name - 이 매개변수는 Windows에서 공유 메모리를 통한 MEMORY 연결에 유용합니다.

모든 MySQL 서버 연결 매개변수 목록이 이에 국한되지 않는다는 것은 분명합니다. 실제로는 더 많이 있습니다.

어떤 이유로 호스트, 사용자 및 암호를 지정하는 표준 옵션이 적합하지 않은 경우 다음 정보가 연결 매개 변수의 전체 목록을 찾는 데 유용합니다 - https://dev.mysql.com/doc /refman/5.7/en/connecting.html

MySQL 콘솔에서 데이터베이스를 생성하는 방법

MySQL 서버에 연결하고 MySQL 명령줄을 시작하면 생성부터 시작되는 사이트 데이터베이스의 수명 주기를 시작할 때입니다. 명령줄을 통해 MySQL 데이터베이스를 만들려면 다음 명령을 입력합니다.

CREATE DATABASE 데이터베이스 이름;

특별한 MySQL 유틸리티를 사용하여 동일한 작업을 수행할 수 있습니다. mysqladmin. MySQL 명령줄과 별도로 실행됩니다. 사용하려면 종료하거나 새 서버 콘솔을 열어야 합니다.

그리고 다음 명령을 호출합니다.

mysqladmin create database_name;

그건 그렇고, mysqladmin 유틸리티를 사용하면 MySQL 콘솔에 들어가지 않고도 데이터베이스를 생성 및 삭제할 수 있을 뿐만 아니라 서버 구성, MySQL 프로세스, 복제 관리, 서버 핑 관리 및 기타 많은 흥미로운 작업을 수행할 수 있습니다.

명령줄에서 MySQL 사용자를 만드는 방법

자주는 아니지만 새 MySQL 사용자를 생성해야 하는 경우가 있습니다. 그리고 콘솔 모드에서.

MySQL 명령줄에서 다음과 같이 수행됩니다.

"user_password"로 식별되는 사용자 "username"@"host_or_machine_ip" 생성;

사용자가 생성되었습니다. 모수 host_or_IP_머신즉, 사용자를 만들 때 서버에 연결할 수 있는 IP 또는 호스트 이름(네트워크에서 작동하는 컴퓨터의 도메인 이름이 적합함)을 지정해야 합니다.

그런데 MySQL 서버에 연결할 호스트를 지정할 때 백분율 기호를 사용할 수 있습니다. % , 이는 생성되는 사용자가 모든 IP 주소 또는 호스트에서 MySQL 서버에 연결할 수 있음을 의미합니다.

이 경우 localhost는 %를 사용하여 지정된 주소 목록에 포함되지 않는다는 점을 고려해야 합니다. localhost는 표준 TCP/IP 대신 UNIX 소켓 연결을 나타냅니다. 저것들. 생성된 MySQL 사용자가 소켓을 사용하지 않고 콘솔에서 MySQL 서버에 연결할 때 지정된 다른 프로토콜을 사용하여 서버에 연결하는 경우 두 개의 사용자 계정을 만들어야 합니다.

"password"로 식별되는 사용자 "username"@"%" 생성; CREATE USER "username"@"localhost" "password"로 식별;

콘솔에서 MySQL 사용자를 생성하는 방법을 알아냈습니다. 이제 다음 명령을 사용하여 새로 만든 데이터베이스로 작업을 수행할 수 있는 사용자 권한을 설정해 보겠습니다.

database_name.*에 대한 모든 권한을 "username"@"host_or_machine_ip"에 부여합니다.

옵션 모두는 사용자가 특정 데이터베이스에 대해 모든 작업을 수행할 수 있음을 나타냅니다. 명령을 사용하여 사용자에게 부여할 수 있는 전체 권한 목록 승인하다, 여기에서 찾을 수 있습니다(매개 변수 설명은 영어로 되어 있음) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

그런데 명령을 호출할 때 여러 권한 매개 변수를 쉼표로 구분하여 지정하여 사용할 수 있습니다.

수퍼유저를 생성하려는 경우, 즉 서버의 모든 데이터베이스에 대해 다양한 작업을 수행할 수 있는 전역 권한이 있는 경우 다음 명령 호출을 사용합니다.

모두 켜기 *.* "username"@"host_or_machine_IP"에 부여;

그런데 권한을 설정한 후 MySQL 서버의 캐시를 지우는 것은 불필요한 일이 아닙니다. 변경하는 경우 다음 명령을 호출하여 이를 수행하는 것을 잊지 마십시오.

플러시 특권;

사용자 권한을 변경하려면 먼저 다음 명령을 사용하여 모든 권한을 재설정하십시오.

"username"@"host_or_machine_IP"에서 *.*의 모든 권한을 취소합니다.

그런 다음 승인하다, 앞에서 설명한 대로.

나중에 MySQL 사용자 암호를 변경해야 하는 경우 MySQL Shell에서 다음 명령을 실행하십시오.

"username"@"host_or_machine_IP"에 암호 설정 = PASSWORD("new_password"); 플러시 특권;

권한을 변경할 때와 동일한 목적으로 MySQL 서버 권한 캐시 재설정이 필요합니다. 이 작업이 없으면 MySQL 사용자 암호 변경이 계산되지 않을 수 있으므로 게으르지 마십시오.

그런데 인터넷에는 다음 명령을 사용하여 사용자의 MySQL 암호를 재설정하는 예가 많이 있습니다.

UPDATE mysql.user SET Password=PASSWORD("password") WHERE User="사용자 이름";

그러나이 옵션은 MySQL 5.7에서 작동하지 않아 오류가 발생했습니다. 오류 1054(42S22): '필드 목록'의 알 수 없는 열 '비밀번호'. 그 원인은 mysql.user 테이블에 Password 필드가 없기 때문입니다.

이 옵션이 사용자 테이블에 이 필드가 존재하는 이전 버전의 MySQL에서만 작동한다고 가정할 수 있습니다. 따라서 버전을 업데이트할 수 없는 구식 소프트웨어로 작업해야 하는 경우가 아니라면 제 첫 번째 옵션을 사용하세요 :)

이것으로 새로운 MySQL 사용자 생성과 해당 권한 및 암호로 작업 검토가 완료됩니다. 더 가자.

명령줄을 통해 MySQL로 작업할 때 데이터베이스 선택

이제 MySQL Shell에서 사용자를 생성하고 데이터베이스 작업 권한을 할당한 후 데이터베이스 자체와 여기에 저장된 데이터에서 작업할 수 있도록 바로 이 데이터베이스를 선택해야 합니다.

이렇게 하려면 MySQL 콘솔에서 다음 명령을 사용합니다.

USE 데이터베이스 이름;

모든 것이 순조롭게 진행되면 콘솔에 메시지가 표시됩니다. 데이터베이스가 변경됨, 콘솔을 통해 MySQL 데이터베이스에 로그인했음을 알립니다. 그건 그렇고, MySQL 서버에 연결할 때 처음에 작업해야 할 데이터베이스를 지정할 수 있습니다. 이렇게 하려면 서버 콘솔에 다음 명령을 입력합니다.

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --database=database_name

또는 동일하며 MySQL 사용자 비밀번호만 요청합니다.

mysql -u 사용자 이름 -h host_or_ip_mysql_server_database_name -p

그게 다야. 이제 콘솔을 통해 MySQL 데이터베이스에 연결하는 데 어려움이 없을 것이라고 생각합니다 🙂

MySQL 콘솔을 통한 MySQL 테이블 작업

그래서 우리는 콘솔을 통해 MySQL 데이터베이스를 만들었습니다. 이제 MySQL 명령줄이 서버에 저장된 데이터에 액세스하는 유일한 수단인 경우에 대해 작업 방법을 배우는 것이 좋을 것입니다. ).

아시다시피 테이블은 정보가 이미 여러 필드가 있는 레코드 형식으로 저장되어 있는 테이블로 구성됩니다. 따라서 정보 배치의 계층 구조에 따라 먼저 테이블을 사용하여 일반적인 CRUD 작업을 수행하는 방법을 배웁니다.

CRUD 작업은 누군가가 알지 못하는 경우 영어에서 데이터를 생성, 읽기, 업데이트 및 삭제하는 작업입니다. "작성, 읽기, 업데이트, 삭제"(인터뷰에서 필요할 수 있음).

테이블 작업을 수행하려면 먼저 다음 명령을 사용하여 MySQL 데이터베이스에 연결해야 합니다. 사용.

따라서 첫 번째 의제는 다음과 같은 명령줄을 통해 데이터베이스에 MySQL 테이블을 생성하는 명령입니다.

CREATE TABLE table_name (field_name_1 field_type_1, field_name_2 field_type_2(field_size_2), INDEX(field_name_1), ...);

아시다시피 원하는 만큼의 필드가 있을 수 있고 유형이 다를 수 있으며 인덱스와 키의 존재 여부는 선택 사항입니다.

그런데 테이블을 다른 데이터베이스에 복사하거나 현재 데이터베이스에 복사본을 만들려는 경우 다음 명령이 도움이 될 것입니다.

CREATE TABLE new_table_name LIKE old_table_name; new_table_name 삽입 SELECT * FROM old_table_name;

이러한 명령을 사용하면 인덱스 및 테이블 트리거와 함께 테이블 및 해당 데이터의 구조를 복사할 수 있습니다. 데이터와 구조(필드 이름 및 해당 데이터 유형)만 필요한 경우 단일 명령 호출로 얻을 수 있습니다.

CREATE TABLE new_table_name AS SELECT * FROM old_table_name;

CRUD 블록의 다음 작업은 읽기입니다. 테이블의 경우 읽기는 해당 구조를 표시합니다. 이에 대한 네 가지 명령이 있습니다.

table_name에서 전체 열 표시; 설명 table_name; EXPLAIN table_name; SHOW CREATE TABLE table_name;

첫 번째는 필드 이름, 데이터 유형, 키 존재 여부, 기본값 등을 나타내는 테이블 형식의 데이터베이스 테이블 필드에 대한 정보를 MySQL 콘솔에 출력합니다. 키워드를 사용할 때 가득한현재 사용자의 각 필드에 대한 권한, 각 필드에 대한 주석 및 인코딩 값을 포함하여 확장된 정보를 얻을 수 있습니다.

두 번째 및 세 번째 명령은 확장 정보가 없는 첫 번째 명령의 축약형입니다. 제작이 필요한 이유-상상도 안 돼요 ... 입사 지원시 면접에서 물어볼 것이 있었을까요? 🙂

이름, 필드 유형 및 기본값 외에도 네 번째 명령을 사용하면 테이블 키, 테이블 엔진(InnoDB, MyISAM), 인코딩 등의 값을 가져올 수 있습니다.

테이블의 경우 업데이트 작업은 구조의 변경입니다. MySQL 테이블 필드를 사용한 다양한 작업:

ALTER TABLE table_name DROP COLUMN field_name; ALTER TABLE table_name 열 추가 field_name VARCHAR(20); ALTER TABLE table_name CHANGE old_field_name new_field_name VARCHAR(50); ALTER TABLE table_name MODIFY field_name VARCHAR(3);

첫 번째 명령을 사용하면 테이블의 특정 필드를 삭제할 수 있고, 두 번째 명령은 추가할 수 있으며, 세 번째 명령은 필드 이름을 바꾸고 동시에 저장된 데이터 유형을 변경할 수 있으며, 네 번째 명령은 데이터 유형만 변경할 수 있습니다.

거의 동일한 명령을 사용하여 테이블 인덱스에서도 동일한 작업을 수행할 수 있습니다.

ALTER TABLE table_name ADD UNIQUE INDEX index_name (field_name_1, ...); ALTER TABLE table_name rename INDEX old_index_name TO new_index_name; ALTER TABLE 테이블명 DROP INDEX 인덱스명;

위의 명령을 사용하면 명령줄을 통해 MySQL 테이블에서 인덱스를 추가, 이름 바꾸기 및 제거할 수 있습니다. 그런데 인덱스를 추가하고 제거하기 위해 독립적인 명령을 사용하는 또 다른 대체 옵션이 있습니다. 테이블 변경. 따라서 원하는 경우 다음과 같이 사용할 수 있습니다.

CREATE UNIQUE INDEX index_name (field_name_1, ...) ON table_name; DROP INDEX index_name ON table_name;

위의 명령은 이전 블록의 첫 번째 및 마지막 명령과 동일합니다. 안타깝게도 인덱스 이름을 바꾸는 별도의 명령은 없습니다. 그리고 불행하게도 인덱스 유형을 변경하는 것은 MySQL에서 전혀 불가능합니다. 유일한 방법은 인덱스를 삭제하고 원하는 유형으로 다시 생성하는 것입니다.

자, 드디어 CRUD 블록의 마지막 작업인 삭제 작업에 도달했습니다. 데이터베이스에서 MySQL 테이블을 제거하는 것은 매우 쉽습니다. MySQL 콘솔에서 다음 명령을 실행하면 충분합니다.

드롭 테이블 table_name;

때로는 실제로 테이블을 삭제하거나 구조를 변경할 수 없는 상황이 있습니다. 일반적으로 이는 테이블을 서로 연결하기 위해 데이터베이스에서 외래 키를 사용하기 때문입니다. 나는 기사의 시작 부분에서 말했듯이 개인적으로이 상황을 두 번 이상 경험했습니다.

따라서 테이블 또는 해당 데이터의 구조를 삭제하거나 업데이트할 때 MySQL은 텍스트와 함께 오류를 반환했습니다. 상위 행을 삭제하거나 업데이트할 수 없음: 외래 키 제약 조건이 실패함, 다음 정보가 도움이 될 것입니다.

계획을 실행하려면 외래 키 존재 확인을 일시적으로 비활성화하고 필요한 작업을 수행한 다음 확인을 다시 켜야 합니다. 실제로 필요하며 대부분의 경우 데이터 무결성 위반으로부터 자신을 보호할 수 있습니다.

실제로 이 목적을 위해 MySQL 외래 키가 필요합니다.

따라서 외래 키의 간섭을 받는 데이터를 삭제하려면 MySQL 콘솔에서 다음 단계를 수행해야 합니다.

SET FOREIGN_KEY_CHECKS=0; #required_mysql_command SET FOREIGN_KEY_CHECKS=1;

그런데 외래 키를 삭제하려는 경우 인덱스를 삭제할 때와 절차는 동일합니다.

ALTER TABLE table_name DROP FOREIGN KEY foreign_key_name;

테이블의 MySQL 외래 키 이름을 찾으려면 이제 친숙한 MySQL 콘솔 명령을 사용하십시오. 테이블 생성 표시.

명령줄을 통해 MySQL 테이블 데이터 작업

테이블의 경우 MySQL 콘솔에서 CRUD 작업을 고려했습니다. 완전한 그림을 위해 이 치트 시트에는 데이터베이스 테이블에 저장된 데이터 자체로 작업하기 위한 명령만 부족합니다. 나는 많은 사람들이 이 명령을 알고 실제로 사용했다고 생각하지만 그래도 다시 상기시켜 드리겠습니다.

MySQL 테이블 데이터 작업을 위한 CRUD 작업은 다음과 같습니다.

INSERT INTO table_name (field1, field2, ...) VALUES (field_1 값, field_2 값, ...); SELECT field1, field2, ... table_name에서; UPDATE table_name SET field1 = field_1 값, field2 = field_2 값; DELETE FROM table_name WHERE field1 = field_1 값;

위의 명령은 MySQL 데이터베이스 테이블에서 데이터를 생성, 읽기, 업데이트 및 삭제하는 작업에 해당합니다. SELECT 및 UPDATE를 사용하는 경우 DELETE를 사용하는 경우에 설명된 방식으로 데이터 선택을 지정하는 데 사용할 수 있는 한정 WHERE 절을 사용할 수도 있습니다.

또한 SELECT를 사용하여 데이터베이스에서 데이터를 가져올 때 다음 옵션을 사용하여 테이블의 모든 필드 값을 가져올 수 있습니다.

SELECT * FROM table_name;

당연히 이러한 작업에는 WHERE 이외의 다른 연산자를 사용할 수 있습니다. 특히 SELECT를 사용하여 데이터를 선택할 때 많이 있습니다. 여러 쿼리의 결과를 결합하는 UNION과 다양한 유형의 JOIN이 있습니다. 모든 목록은 나에게 매우 길고 피곤하며 당신은 이것을 읽을 것입니다.

따라서 동의합시다. 무언가에 대해 더 알고 싶다면 의견에 적어 주시면 답변 해 드리겠습니다. 또는 우리 커뮤니티의 다른 지식이 있는 구성원이 그렇게 할 것입니다. 좋아요? 😉

따라서 지금은 이 블록에 대해 자세히 다루지 않겠습니다.

테이블에서 모든 데이터를 제거해야 하는 경우 다음 MySQL 명령을 사용할 수 있습니다.

TRUNCATE table_name;

호출하기 전에 이미 언급한 대로 관련 MySQL 테이블이 있는 경우 외래 키 검사를 비활성화해야 할 수 있습니다. 이로 인해 필요한 작업이 수행되지 않을 수 있습니다.

여기서 고려해야 할 또 다른 흥미로운 점은 이 명령이 수동으로 설정할 필요 없이 필드 값을 자동으로 생성하는 데 사용되는 것으로 알려진 AUTO_INCREMENT 카운터를 재설정하지 않는다는 것입니다.

이 유형의 필드는 다른 테이블의 데이터 간에 링크를 설정하는 데 사용되는 기본 키 필드 id에 대한 값을 생성하는 데 가장 자주 사용됩니다.

즉, 다음을 사용하여 테이블 데이터를 삭제하기 전에 자르기카운터의 최대값이 1200이면 이 절차 이후의 첫 번째 레코드는 식별자 1201의 값을 갖게 됩니다. 원칙적으로는 괜찮습니다. 이 필드에 충분한 크기를 설정하면 곧 오버플로 값이 발생하지 않습니다.

그러나 경우에 따라 애플리케이션 코드의 필드 값에 대한 일종의 바인딩이 있는 경우 이 동작이 불편할 수 있습니다.

이를 방지하려면 위의 명령 대신 이 옵션을 사용하십시오.

TRUNCATE TABLE someTable RESTART IDENTITY;

이 명령 호출 옵션 자르기에서 필드 카운터 값을 재설정할 수 있습니다. 자동 증가. 따라서 이 삭제 후 추가된 첫 번째 레코드의 필드 값은 위의 예에서와 같이 1201이 아닌 1이 됩니다.

명령줄을 통해 MySQL 데이터베이스를 삭제하는 방법

데이터베이스 작업의 수명주기가 끝나고 삭제함으로써 매우 논리적으로 끝납니다. MySQL 콘솔에서 이 작업을 수행하려면 다음 명령을 실행해야 합니다. (이 경우 명령으로 삭제할 데이터베이스가 선택되지 않을 수 있습니다. 사용):

DELETE DATABASE database_name;

데이터베이스를 생성할 때 기사 시작 부분에서 이미 언급한 MySQL 유틸리티 mysqladmin을 사용하여 동일한 작업을 수행할 수 있습니다.

mysqladmin drop database_name;

명령이 호출되면 서버 콘솔에 다음 메시지가 나타납니다.

데이터베이스를 삭제하는 것은 잠재적으로 매우 나쁜 일입니다.
데이터베이스에 저장된 모든 데이터는 파기됩니다.

정말로 'database_name' 데이터베이스를 삭제하시겠습니까?

요컨대 이것은 MySQL 데이터베이스를 삭제하는 것은 매우 나쁜 생각이라는 경고입니다. 또한 작업 확인을 요청합니다. 동의하면 작성 와이그리고 누르기 입력하다키보드에서 다음 메시지가 화면에 표시됩니다 (물론 모든 것이 잘되면).

데이터베이스 "database_name" 삭제됨

이렇게 🙂

콘솔에서 MySQL 사용자를 삭제하는 방법

이제 동일한 운명이 어떻게 수행되는지 보여주기 위해 생성 중인 MySQL 사용자에게 닥칠 것입니다. 그러나 우선 삭제하기 전에 필요한 사용자가 실제로 존재하는지 확인하는 것이 좋습니다.

MySQL 5.7부터는 다음 두 작업 모두에 대해 하나의 명령이 있습니다.

DROP USER IF EXISTS 사용자 이름;

이전 버전의 MySQL에는 두 개의 개별 명령이 필요했습니다.

*.* TO "username"@"host_or_IP_address"에 대한 사용 권한 부여; 드롭 사용자 "username"@"host_or_ip_address";

불행히도 이 경우 MySQL 콘솔에서 작업 완료에 대한 메시지는 일반적으로 정보가 없습니다. 🙁 따라서 MySQL 사용자 사용자 삭제가 발생했는지 확인하려면 다음 명령을 사용할 수 있습니다. 현재 MySQL 서버에 존재하는 모든 사용자:

mysql.user에서 사용자 선택;

이 버전의 명령은 사용자 이름만 표시합니다. 사용자가 서버에 연결할 수 있는 호스트와 권한 목록을 확인해야 하는 경우 다음 형식으로 명령을 호출할 수 있습니다.

mysql.user에서 사용자, 호스트, Grant_priv를 선택합니다.

mysql.user 테이블에는 다른 유형의 권한 및 기타 정보를 저장하는 다른 많은 필드가 있으며 전체 목록은 https://mariadb.com/kb/en/library/mysqluser-table/에서 찾을 수 있습니다.

이것이 MariaDB DBMS에 대한 문서라고 혼동하지 마십시오. 기술적으로 이것은 MySQL과 동일합니다. MariaDB는 영어 "포크"(분기, 포크)의 파생물 또는 포크일 뿐입니다.

왜 그렇게 해야만 했을까 - 또 단서 없이 🙂 “나만의 DBMS가 있다”고 모든 사람에게 자랑스럽게 선언할 수 있습니까? .. 하지만 솔직히 저는 MySQL과 MariaDB. 따라서 이것에 대해 알고 있다면 의견에서 그것에 대해 읽는 것이 흥미로울 것입니다.

MySQL 콘솔 종료

그게 다야, 생성으로 시작하여 삭제로 끝난 데이터베이스와 사용자의 수명주기가 끝났습니다. 따라서 유틸리티를 사용하여 서버 콘솔에서 작업한 MySQL 명령줄은 mysql우리는 더 이상 필요하지 않습니다.

그것에서 벗어나는 것만 남아 있습니다 ...

행동이 사소해 보이지만 MySQL 명령줄을 종료해야 하는 상황에서 많은 사람들이 단순히 서버 콘솔을 닫았다가 다시 엽니다. 물론 이런 식으로 행동할 수도 있지만 작업 시간이 몇 초 더 걸리고 필요할 때마다 짜증이 납니다.

이 상황에서 올바른 동작은 명령을 호출하는 것입니다. 출구 MySQL 명령 줄에서 서비스가 정중하게 우리에게 작별 인사를 할 것입니다 🙂

그리고 뭔가 🙂 다음에 콘솔을 생성하고 콘솔에서 MySQL을 종료하고 서버를 관리하기 위해 다시 액세스해야 할 때마다 콘솔을 다시 열 필요가 없습니다.

그게 제가 오늘 여러분에게 말하고 싶었던 전부입니다. 콘솔을 통한 MySQL 명령줄 작업에 대한 치트 시트가 저뿐만 아니라 귀하에게도 유용하기를 바랍니다.

기사에 제시된 정보의 실제 적용에 대해 말하면서 위의 구성은 MySQL 명령 줄과 서버 콘솔뿐만 아니라 phpMyAdmin 콘솔 및 그러한 기능을 제공하는 기타 소프트웨어에서도 사용할 수 있음을 상기하고 싶습니다. 기회.

사용 여부는 귀하에게 달려 있습니다. 그러나 기사의 맨 처음에서 말했듯이 MySQL 콘솔을 사용하면 시간과 신경을 덜 수 있는 상황이 있습니다. 매일 명령줄을 사용할지 여부는 취향과 개인 취향의 문제입니다.

가장 자주 사용하는 명령에 대한 설명을 작성하십시오. 아니면 다른 요령을 알고 있을 수도 있습니다. 어쨌든 다른 사용자와 의견을 공유하고 다른 사용자의 댓글에서 대화를 계속하십시오.

내가 각 기사를 쓸 때처럼 그 과정에서 많은 새로운 것을 배울 것이라고 약속합니다 🙂

그게 다야! 행운을 빌며 곧 뵙겠습니다 🙂

추신: 웹사이트가 필요하거나 기존 웹사이트를 변경해야 하지만 이에 대한 시간과 욕구가 없는 경우 서비스를 제공할 수 있습니다.

경력 5년 이상전문 웹 사이트 개발. 작업 PHP, 오픈카트, 워드프레스, 라라벨, 이이, MySQL, PostgreSQL, 자바스크립트, 반응하다, 모난및 기타 웹 개발 기술.

다음은 가장 유용하고 자주 사용되는 명령 목록입니다. MySQL예를 들어.

줄 시작 부분의 mysql은 입력 후 명령이 실행됨을 의미합니다. MySQL.

줄 시작 부분의 기호 # 또는 $는 명령이 명령줄에서 실행되고 있음을 의미합니다.

서버 상태를 확인하려면 MySQL달리다:

을 위한 FreeBSD:

# 서비스 mysql-server 상태

V 센트OS/RHEL:

# 서비스 mysqld 상태

MySQL서버인 경우 콘솔에서 MySQL동일한 호스트에 있음:

서버에 연결하려면 MySQL서버인 경우 콘솔에서 MySQL원격 호스트 db1.example.com에 있습니다.

$ mysql -u 사용자 이름 -p -h db1.example.com

데이터베이스, 테이블 작업 - 레코드 보기, 삭제, 편집. 콘솔

데이터베이스 생성 MySQL섬기는 사람:

mysql 데이터베이스 생성

서버의 모든 데이터베이스 목록 표시 MySQL:

MySQL 사용 ;

데이터베이스의 모든 테이블을 표시합니다.

mysql 쇼 테이블;

데이터베이스에서 테이블 형식 보기:

mysql 설명 ;

베이스 삭제:

mysql 드롭 데이터베이스 ;

데이터베이스에서 테이블 삭제:

mysql 드롭 테이블 ;

표의 모든 내용 표시:

MySQL 선택 *에서 ;

선택한 테이블의 열과 열 내용을 표시합니다.

Mysql은 에서 열을 표시합니다.

" every "를 포함하는 특정 테이블의 행 표시:

MySQL SELECT * FROM WHERE = "무엇이든";

" Bob " 및 전화 번호 " 3444444를 포함하는 특정 테이블의 모든 레코드 표시:

Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";

모든 항목 표시 아니다이름 " Bob "과 전화번호 " 3444444 "를 포함하며 phone_number 필드로 정렬됩니다.

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

특정 테이블에서 문자 " bob " 및 전화번호 " 3444444 "로 시작하는 모든 항목을 표시합니다.

Mysql SELECT * FROM WHERE name like " Bob %" AND phone_number = " 3444444 ";

" bob " 문자 및 전화 번호 " 3444444 "로 시작하는 모든 항목 표시(항목 1~5로 제한됨):

Mysql SELECT * FROM WHERE name like " Bob %" AND phone_number = " 3444444 " 제한 1.5;

정규식("REGEXP BINARY")을 사용하여 레코드를 검색합니다. 예를 들어, 대소문자를 구분하지 않는 검색의 경우 문자 A로 시작하는 모든 항목을 찾습니다.

Mysql SELECT * FROM WHERE rec RLIKE "^a";

모든 고유 항목 표시:

MySQL SELECT DISTINCT FROM ; mysql SELECT , FROM ORDER BY DESC;

표의 행 수 표시:

Mysql SELECT COUNT(*) FROM ;

MySQL SELECT SUM(*) FROM ;

열 제거:

mysql 변경 테이블 드롭 열 ;

데이터베이스에 열 추가:

mysql 변경 테이블 추가 열 varchar(20);

열 이름 변경:

mysql 변경 테이블 변경 varchar(50);

중복 이름을 피하기 위해 고유한 이름으로 열을 만듭니다.

mysql 변경 테이블 추가 unique();

열 크기 조정:

mysql 변경 테이블 수정 VARCHAR(3);

테이블에서 열 제거:

mysql 변경 테이블 드롭 인덱스 ;

Mysql LOAD DATA INFILE " /tmp/filename.csv " 대체 INTO TABLE FIELDS TERMINATED BY "," LINES TERMINATED BY "n" (field1,field2,field3);

MySQL 서버 사용자, 암호 - 사용자 및 암호 추가, 변경. 콘솔

새 사용자 만들기 - 서버에 연결 MySQL루트로 데이터베이스로 전환, 사용자 추가, 권한 업데이트:

# mysql -u root -p mysql mysql 사용; mysql INSERT INTO user (Host,User,Password) VALUES("%"," username ", PASSWORD(" password ")); mysql 플러시 권한;

원격 호스트 db1.example.org의 콘솔에서 사용자 비밀번호를 변경합니다.

# mysqladmin -u 사용자 이름 -h db1.example.org -p 암호 " 새 암호 "

콘솔에서 사용자 비밀번호 변경 MySQL- 루트로 연결, 비밀번호 업데이트, 권한 업데이트:

# mysql -u root -p mysql SET PASSWORD FOR " user "@" hostname " = PASSWORD(" passwordhere "); mysql 플러시 권한;

루트 서버 암호 복원/변경 MySQL- 멈추다 MySQL, 권한 테이블 없이 시작, 루트로 연결, 새 암호 설정, 종료 및 다시 시작 MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql 업데이트 사용자 설정 암호=PASSWORD(" newrootpassword ") 여기서 User="root"; mysql; 플러시 권한; mysql 종료 # /etc/init.d/mysql 중지 # /etc/init.d/mysql 시작

루트 암호가 있는 경우 루트 암호를 설정합니다.

# mysqladmin -u 루트 비밀번호 newpassword

루트 비밀번호 업데이트:

# mysqladmin -u root -p oldpassword newpassword

암호 "passwd"를 사용하여 localhost 호스트에서 서버에 연결할 수 있는 권한 설정 - 서브루트 연결, 데이터베이스로 전환, 권한 설정, 권한 업데이트:

# mysql -u root -p mysql mysql 사용; mysql은 *.*에서 " passwd "로 식별되는 bob @localhost에 사용 권한을 부여합니다. mysql 플러시 권한;

사용자가 데이터베이스를 사용할 수 있도록 권한 설정 - 루트로 연결, 데이터베이스로 전환, 권한 설정, 권한 업데이트:

# mysql -u root -p mysql mysql 사용; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) 값("%","databasename","username","Y","Y","Y"," Y","Y","N"); mysql 플러시 권한;

Mysql은 데이터베이스 이름 .*에 대한 모든 권한을 사용자 이름 @localhost에 부여합니다. mysql 플러시 권한;

데이터베이스에서 정보 업데이트:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" 여기서 = 사용자";

테이블에서 행 삭제:

Mysql DELETE from where = "무엇이든";

데이터베이스에서 권한 업데이트:

mysql 플러시 권한;

백업 - 데이터베이스 생성, 복원. 콘솔

모든 데이터베이스의 백업 복사본(덤프)을 alldatabases.sql 파일에 만듭니다.

# mysqldump -u root -p 비밀번호 -opt ; /tmp/alldatabases.sql

하나의 데이터베이스를 databasename.sql 파일에 백업합니다.

# mysql 덤프 -u 사용자 이름 -p 암호 -databases 데이터베이스 이름; /tmp/databasename.sql

하나의 테이블을 databasename.tablename.sql 파일에 백업합니다.

# mysql 덤프 -c -u 사용자 이름 -p 비밀번호 데이터베이스 이름 테이블 이름 ; /tmp/databasename.tablename.sql

백업에서 데이터베이스(또는 테이블) 복원:

# mysql -u 사용자 이름 -p 비밀번호 데이터베이스 이름< /tmp/databasename.sql

데이터베이스 테이블 생성. 콘솔

소문자는 열 이름을 나타냅니다.
대문자 - 열의 유형 및 속성
(괄호) - 열 유형의 값.

테이블 예제 1 만들기:

mysql CREATE TABLE(이름 VARCHAR(20), 중간 이니셜 VARCHAR(3), 성 VARCHAR(35), 접미사 VARCHAR(3), 사무실 ID VARCHAR(10), 사용자 ID VARCHAR(15), 사용자 이름 VARCHAR(8), 이메일 VARCHAR(35 ) ), 전화 VARCHAR(25), 그룹 VARCHAR(15), 날짜 스탬프 DATE, 타임 스탬프 TIME, pgpemail VARCHAR(255));

테이블 예제 2 만들기:

Mysql 생성 테이블(personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, 이름 VARCHAR(35), 중간 이름 VARCHAR(50), 성 VARCHAR(50) 기본 "bato");

mysql 명령줄 유틸리티는 간단한 SQL 래퍼(GNU 프로젝트의 readline 라이브러리 기능 포함)입니다. 대화식 및 비대화식 모드를 지원합니다. 대화형 모드에서 쿼리 결과는 ASCII 형식으로 표시됩니다. 비대화형 모드(예: 필터)에서 사용할 경우 결과는 구분 기호로 탭 문자가 있는 텍스트 형식으로 표시됩니다(출력 형식은 명령줄 옵션을 사용하여 변경할 수 있음). 아래와 같이 스크립트를 실행할 수 있습니다.

셸 > mysql 데이터베이스 output.tab

주어진 클라이언트의 메모리 부족으로 인해 문제가 발생하는 경우 --quick 옵션을 사용하십시오! 이로 인해 mysql은 mysql_store_result() 함수 대신 mysql_use_result() 함수를 사용하여 결과 데이터 가져오기를 얻습니다.

mysql을 사용하는 것은 매우 쉽습니다. mysql 데이터베이스 또는 mysql --user=user_name --password=your_password 데이터베이스 실행 e. 명령줄에 SQL 명령을 직접 입력하고 `;" , `\g" 또는 `\G" 문자 중 하나로 끝내고 ``Enter"' 키를 누르십시오.

mysql 명령줄 유틸리티는 다음 옵션을 지원합니다.

도움말 프로그램 사용에 대한 도움말 정보를 표시하고 종료합니다. -A, --no-auto-rehash 자동 재해싱을 비활성화합니다. 테이블 및 필드의 해시를 가져오려면 rehash를 사용해야 합니다. 이렇게 하면 mysql이 더 빠르게 시작됩니다. --prompt=... 주어진 형식으로 명령 프롬프트를 설정합니다. -b, --no-beep 오류 경고음을 끕니다. -B, --batch 탭 문자를 구분 기호로 사용하여 각 줄을 새 줄에 일괄 출력합니다. 히스토리 파일은 사용되지 않습니다. --character-sets-dir=... 문자 집합이 있는 디렉터리입니다. -C, --compress 서버/클라이언트 프로토콜 데이터 압축을 사용합니다. -#, --debug[=...] 디버그 로그. 기본값은 "d:t:o,/tmp/mysql.trace"입니다. -D, --database=... 사용할 데이터베이스의 이름. 주로 `my.cnf" 구성 파일에서 사용됩니다. --default-character-set=... 기본 문자 집합을 설정합니다. -e, --execute=... --batch) -E, --vertical Print 쿼리 결과(문자열)를 세로로.명령을 \G 문자로 끝내면 이 옵션 없이 이와 같은 출력을 생성할 수 있습니다. -f, --force SQL 오류가 발생하더라도 처리를 계속합니다. -g, --no-named-commands 명명된 명령 끄기 \* 명령만 사용하거나 `;"로 끝나는 줄의 시작 부분에서만 명명된 명령을 사용하십시오. . 버전 10.9부터 클라이언트는 이 옵션으로 시작됩니다. 포함 기본! 그러나 -g 옵션을 사용하면 긴 명령이 여전히 첫 번째 줄부터 작동합니다. -G, --enable-named-commands 명명된 명령을 활성화합니다. 긴 명령은 물론 \*와 같은 단축 명령도 허용됩니다. -i, --ignore-space 함수 이름 뒤의 공백을 무시합니다. -h, --host=... 지정된 호스트의 데이터베이스에 연결합니다. -H, --html 출력을 HTML로 인쇄합니다. -L, --skip-line-numbers 오류가 있는 경우 줄 번호를 건너뜁니다. 오류 메시지가 포함된 결과 파일을 비교하는 데 유용합니다. --no-pager 호출기를 비활성화하고 결과를 stdout(Unix에서)에 기록합니다. \h 명령(온라인 도움말)도 참조하십시오. --no-tee 출력 파일을 잠급니다. \h 명령(온라인 도움말)도 참조하십시오. -n, --unbuffered 각 요청 후 버퍼를 지웁니다. -N, --skip-column-names 결과에서 열 이름을 건너뜁니다. -O, --set-variable var=option 변수의 값을 설정합니다. 사용된 변수 목록은 --help 를 통해 표시됩니다. -o, --one-database 기본 데이터베이스만 업데이트합니다. 업데이트 로그에서 다른 데이터베이스 업데이트를 건너뛸 수 있습니다. --pager[=...] 출력 데이터 유형을 설정합니다. 기본적으로 이것은 PAGER 환경 변수입니다. 가능한 값은 less, more, cat [> filename] 등입니다. \h 명령(온라인 도움말)도 참조하십시오. 이 옵션은 배치 모드에서 작동하지 않습니다. 호출기는 Unix에서만 작동합니다. -p, --password[=...] 데이터베이스 서버에 연결할 때 사용되는 암호입니다. 명령줄에 암호가 지정되지 않은 경우 사용자에게 암호를 요청합니다. 약식 -p를 사용하는 경우 매개변수와 암호 값 사이에 공백을 두지 마십시오. -P --port=... 연결에 사용할 TCP/IP 포트 번호입니다. -q, --quick 결과를 캐시하지 않습니다. 서버에서 오는 대로 한 줄씩 출력합니다. 출력이 일시 중지되면 서버 속도가 느려질 수 있습니다. 히스토리 파일은 사용되지 않습니다. -r, --raw 변환 없이 열 값을 표시합니다. --batch 와 함께 사용됩니다. -s, --silent 자동 모드. 오류 메시지만 표시합니다. -S --socket=... 연결에 사용되는 소켓 파일. -t --table 결과를 테이블 형식으로 출력합니다. 비배치 모드에 대해 기본적으로 설정됩니다. -T, --debug-info 프로그램이 종료될 때 일부 디버그 정보를 인쇄합니다. --tee=... 출력 파일에 무언가를 첨부합니다. \h 명령(온라인 도움말)도 참조하십시오. 이 옵션은 배치 모드에서 작동하지 않습니다. -u, --user=# 이 사용자가 현재 활성 상태가 아닌 경우 MySQL 사용자 이름입니다. -U, --safe-updates[=#], --i-am-a-dummy[=#] 키를 사용한 UPDATE 및 DELETE 작업만 허용합니다. 이 설정에 대한 자세한 내용은 아래를 참조하십시오. `my.cnf' 구성 파일에서 --safe-updates=0 인수를 설정하여 이 옵션을 재설정할 수 있습니다. -v, --verbose 더 자세한 출력 모드(-v -v -v는 테이블 출력 형식을 제공합니다.) - V , --version 버전 정보를 표시하고 프로그램을 종료합니다. -w, --wait 서버에 대한 연결이 끊어지면 기다렸다가 중단하는 대신 복원을 시도합니다.

-O 또는 --set-variable 명령줄 옵션을 통해 다음 변수를 설정할 수도 있습니다.

명령줄에 help를 입력하면 mysql 프로그램이 지원하는 명령을 나열합니다.

Mysql> help MySQL 명령 도움말(\h) 주어진 텍스트를 표시합니다. ? (\h) 도움말의 동의어입니다. 지우기(\c) 지우기 명령입니다. 연결(\r) 서버에 다시 연결합니다. 추가 인수는 db 및 호스트입니다. 편집(\e) $EDITOR로 현재 명령을 편집합니다. ego (\G) 현재 MySQL 명령을 서버로 보내고 결과를 세로로 표시합니다. exit (\q) 프로그램을 종료합니다. 종료와 동일합니다. go (\g) 현재 MySQL 명령을 서버로 보냅니다. nopager (\n) 호출기를 차단하고 stdout으로 인쇄합니다. 참고 (\t) 출력 파일 outfile에 항목을 추가하지 마십시오. 호출기(\P) PAGER 를 설정합니다. PAGER를 통해 쿼리 결과를 표시합니다. print (\p) 현재 명령을 인쇄합니다. 프롬프트(\R) mysql 명령의 프롬프트 형식을 변경합니다. 종료(\q) 프로그램을 종료합니다. rehash (\#) 해시 테이블을 복원합니다. 소스(\.) SQL 스크립트 파일을 실행합니다. 파일 이름을 인수로 제공하십시오. status (\s) 서버 상태 정보를 가져옵니다. tee (\T) outfile 옵션을 설정합니다. 주어진 출력 파일에 무언가를 추가합니다. use (\u) 다른 데이터베이스를 사용합니다. 데이터베이스 이름을 인수로 지정하십시오.

pager 명령은 Unix에서만 작동합니다.

이것의 결과는 다음과 같습니다.

  • WHERE 절에 키 제한이 지정되어 있지 않으면 UPDATE 또는 DELETE 명령을 실행할 수 없습니다. 그러나 LIMIT 문을 사용하여 UPDATE / DELETE 명령을 강제로 실행할 수 있습니다. UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • 모든 대형 결과는 #select_limit# 라인으로 제한됩니다.
  • 실행하는 데 #max_join_size# 이상의 행 조합이 필요할 수 있는 SELECT 는 중단됩니다.

mysql 클라이언트 사용에 대한 몇 가지 유용한 팁:

일부 데이터는 일반적으로 사용되는 가로 출력 창 대신 세로로 표시될 때 더 읽기 쉽습니다. 예를 들어 너비보다 길고 개행 문자가 많은 텍스트는 세로로 읽기가 훨씬 쉽습니다.

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith 작성: Thimble> Hi. 좋은 생각이라고 생각합니다. UTF-8 Thimble> 또는 Unicode에 익숙한 사람이 있습니까? 그렇지 않으면 "이것을 내 TODO 목록에 추가하고 Thimble>이 어떻게 되는지 확인하겠습니다. 예, 그렇게 하십시오. 감사합니다. Monty file: inbox-jani-1 hash: 190402944 1 row in set (0.09 sec)

  • tee 명령 옵션을 사용하여 로그인할 수 있습니다. mysql에 --tee=... 옵션을 사용하여 실행하거나 tee 명령을 사용하여 명령줄에서 대화식으로 실행할 수 있습니다. 화면에 표시되는 모든 데이터는 지정된 파일에도 추가됩니다. 이는 프로그램 디버깅 목적에 매우 유용할 수 있습니다. tee 유틸리티는 notee 명령을 사용하여 명령줄에서 차단할 수 있습니다. tee 명령을 다시 실행하면 로깅이 다시 활성화됩니다. tee 명령에 대한 매개변수를 지정하지 않으면 이전 파일이 사용됩니다. tee 명령은 각 명령이 실행된 후 다음 명령에 대한 명령 프롬프트가 나타나기 직전에 결과를 파일에 씁니다.
  • --pager[=...] 옵션을 사용하면 less , more 또는 이와 유사한 Unix 프로그램과 대화식으로 결과를 보거나 검색할 수 있습니다. 이 매개변수에 인수를 명시적으로 지정하지 않으면 mysql 클라이언트는 PAGER 환경 변수를 찾고 값을 pager 로 설정합니다. pager 프로그램은 또한 pager 명령을 사용하여 대화형 명령줄에서 시작하고 nopager 명령을 사용하여 중지할 수 있습니다. 이 명령은 선택적 인수를 사용할 수 있습니다. pager는 이 인수의 값으로 설정됩니다. pager 명령은 인수 없이 호출할 수도 있지만 --pager 옵션을 사용하거나 stdout의 적절한 기본 설정을 사용해야 합니다. pager 명령은 Windows에서 사용할 수 없는 popen() 함수를 사용하기 때문에 Unix에서만 작동합니다. 대신 Windows에서는 tee 옵션을 사용할 수 있지만 경우에 따라 pager 명령을 사용하는 것보다 편리하지 않습니다.
  • pager 명령에 대한 몇 가지 팁: 파일에 쓰는 데 사용할 수 있습니다: mysql> pager cat > /tmp/log.txt 결과는 파일로만 전송됩니다. pager 명령에 의해 호출되는 프로그램은 유효한 옵션을 허용할 수 있습니다. mysql> pager less -n -i -S 위의 예에서 -S 옵션에 특히 주의하십시오. 결과를 볼 때 매우 유용할 수 있습니다. 수평 출력("\g" 또는 ";"으로 명령 종료) 및 수직 출력(명령 끝에 "\G" 사용)으로 사용해 보십시오. 매우 성가신 출력 결과는 때때로 화면에서 읽기 어렵습니다. 이 경우 -S 옵션이 있는 less 명령을 사용하면 결과를 왼쪽에서 오른쪽으로 대화식으로 볼 수 있습니다. 나타나면 출력은 새 줄에서 계속됩니다. 이러한 경우 데이터 출력은 더 읽기 쉽습니다. "-S" 옵션과 함께 less 명령을 대화식으로 호출할 때 명령줄에서 작동 모드(활성화/비활성화)를 전환할 수 있습니다. less에 대한 자세한 내용은 "h" 명령 설명을 참조하십시오.
  • 결론적으로, 우리는 (이전 예제에서 이것을 아직 이해하지 못했다면) 결과를 처리하는 매우 복잡한 방법을 결합하는 것이 가능하다는 점에 주목합니다. 따라서 다음 예에서 결과는 /dr1 및 /dr2 아래에 있는 두 개의 서로 다른 하드 드라이브에 마운트된 두 개의 서로 다른 디렉토리로 전송되지만 그 결과는 less 명령을 사용하여 화면에서 볼 수 있습니다. mysql> pager cat | 티 /dr1/tmp/res.txt | \ 티 /dr2/tmp/res2.txt | 덜 -n -i -S
  • 위의 기능을 결합할 수도 있습니다. tee를 실행하고 pager를 less로 설정하면 less Unix 명령으로 결과를 보는 동시에 파일에 쓸 수 있습니다. 호출기 프로그램에서 사용하는 Unix 유틸리티 tee와 mysql 클라이언트에 내장된 tee 명령의 차이점은 내장된 tee 명령은 Unix에서 tee 유틸리티를 사용할 수 없는 경우에도 작동한다는 것입니다. tee 빌트인은 또한 화면에 표시되는 모든 것을 기록하지만 호출기와 함께 사용되는 Unix tee 유틸리티는 많은 작업을 수행하지 않습니다. 마지막으로 파일에 쓸 때 때때로 이 기능을 비활성화해야 하는 경우 작동 모드 켜기/끄기를 전환하는 데 대화형 tee 명령이 더 편리합니다.

mysql 클라이언트 명령줄에서 프롬프트 형식을 변경할 수 있습니다.

다음 프롬프트 옵션을 사용할 수 있습니다.

옵션 설명
\Vmysql 버전
\디사용할 데이터베이스의 이름
\시간연결할 호스트 이름
\피연결이 이루어지는 포트 번호
\유사용자 이름
\유전체 주소 username@host
\\ 백슬래시 `\"
\N개행 문자
\티탭 정지
\ 공간
\_ 밑줄이 있는 공백
\아르 자형군사 시간대(0-23)
\아르 자형표준 시간대에 따른 시간(1-12)
\중
\와이연도의 두 자리
\와이연도의 네 자리
\디전체 날짜 형식
\에스
\w세 글자 형식의 요일(Mon, Tue, ...)
\피오전/오후(오전/오후)
\영형숫자 형식의 월
\영형세 글자 형식의 월(Jan, Feb, ...)
\씨입력된 명령의 수를 세는 카운터

`\" 다음에 다른 문자가 오면 해당 문자가 완성됩니다.

다음과 같은 방법으로 프롬프트 옵션을 설정할 수 있습니다.

환경 변수에서프롬프트 문자열에 대한 MYSQL_PS1 환경 변수를 설정할 수 있습니다. 예: shell> export MYSQL_PS1="(\u@\h) [\d]> " `my.cnf' `.my.cnf" mysql 그룹 아래의 모든 MySQL 구성 파일에서 프롬프트 옵션을 설정할 수 있습니다. 예: 프롬프트=(\u@\h) [\d]>\_ 명령줄에서 mysql 명령줄에서 --prompt 옵션을 설정할 수 있습니다. 예: shell> mysql --prompt="(\u@\h) [\d]> " (user@host) > 인터렉티브프롬프트(또는 \R) 명령을 사용하여 대화식으로 프롬프트 설정을 변경할 수도 있습니다. 예: mysql> 프롬프트 (\u@\h) [\d]>\_ PROMPT set to "(\u@\h) [\d]>\_" (user@host) > (user@host) > 프롬프트 원래(기본값)로 돌아가기 mysql> mysql> 유틸리티의 PROMPT 설정