스토리 배경:
오래 전(2017.6.5, 기사의 시의성이 있고 특히 사용된 도구가 자주 업데이트됩니다. 이때를 기억하세요. 더 이상 가치가 없으면 모든 것이 공식 적용을 받습니다. 도구 문서)), 나는 mysql 버전을 다운로드하여 사용했습니다. 최신 버전은 mysql5.7.18입니다. 이 시스템은 win10, 64비트 시스템입니다. 단계는 대략 다음과 같이 나뉩니다:
1. 다운로드: 공식 웹사이트()를 참조하고, 다운로드는 시스템 버전에 따라 응답합니다.
2. 초기화: 명령줄(cmd)을 사용하여 압축 해제 디렉터리 bin 폴더에 들어갑니다(압축을 풀어야 함). 다운로드하고 나면 그렇죠? 저도 오랫동안 잊어버렸네요. 다운로드에 데이터 폴더와 ini 파일이 없습니다.) 두 가지 초기화 방법이 있습니다. 하나는 안전하지 않은 초기화라고 하며 입력: mysqld --initialize, 초기화에서는 루트 사용자에게 비밀번호가 없습니다(비밀번호가 없으므로 안전하지 않습니다). 다른 하나는 소위 보안 초기화입니다. 입력: mysqld --initialize -insecure, 비밀번호 생성 루트 사용자의 비밀번호는 생성 후 나타나는 로그 파일, 초기화 후 생성된 데이터 파일에서 볼 수 있습니다
3. 서비스 시작: Enter: net start mysql(닫기 service: Enter: net stop mysql), net이 내부 명령이 아니라는 메시지가 나타나면 net이 설치되지 않았거나 환경 변수가 구성되지 않았을 수 있으므로 확인해보세요
4. 기본적으로 다음과 같아야 합니다. 다른 사항에 대해서는 mysql 명령 목록을 확인할 수 있습니다.
다음으로 문자 집합 구성 문제에 대해 이야기하겠습니다.
원인:
어제는 mysql 명령줄에서 데이터를 보는 것이 너무 추상적이어서 먼저 Navicat for mysql(비주얼 인터페이스)을 다운로드해 보았는데 훨씬 좋아 보였습니다. 그림과 같이:
그러면 테이블에 데이터를 삽입할 때 "잘못된 문자열 값"이라는 오류가 보고됩니다. Baidu에서는 다른 인코딩이 저장할 수 없기 때문에 문자 집합을 utf8mb4로 변경해야 한다고 말했습니다. 일부 특수 문자. 세부 정보 Baidu를 사용할 수 있습니다.
After:
문자 집합을 수정하려면 먼저 mysql을 입력합니다. mysql -uroot(사용자 로그인, 비밀번호가 없는 사용자가 초기화를 위해 선택되었기 때문에), 표시된 대로 'char%'와 같은 변수를 표시합니다(문자 인코딩 확인). 그림에서:
예를 들어 명령줄에 set Character_set_server=utf8mb4를 입력하여 문자 집합을 변경할 수 있지만 해당 시간에만 유효하며 서비스가 다시 시작되면 기본값이 복원됩니다. . 다음에는 다른 방법을 시도해 보세요. 인터넷에는 다양한 의견이 있으며, 너무 모호하여 진실과 거짓을 구별하기가 어렵습니다. 그래서 공식 홈페이지에 가서 살펴보니(공식 홈페이지도 너무 헷갈리고, 참고할만한 예도 없고, 마치 시각 장애인에게 흰색은 흰색이라고 말하는 것 같은데, 내가 바로 그 시각 장애인이다) 보니까 문서에 변수를 보는 명령이 있습니다: mysqld --verbose --help, 표시되는 변수는 서비스가 시작될 때마다 옵션 파일에 따라 자동으로 구성됩니다. 그러면 여기에 문장이 나타날 것입니다:
기본 옵션은 다음 파일에서 지정된 순서대로 읽습니다.
Me 옵션 파일이 존재할 수 있는 위치에 있어야 한다고 생각합니다. 즉, 새로 생성된 옵션 파일의 이름은 다음과 같아야 합니다. 이름이 표시되고 배치되어야 하는 위치에 배치됩니다. 그림에 표시된 대로:
새 my.ini 파일을 생성하고 위에 표시된 대로 표시되는 위치 중 하나인 D: mysql 아래에 배치합니다. my.ini의 내용은 다음과 같습니다.
기본적으로 이런 형태로 구성되어 있습니다. 여기서는 범인인 Character_set_server만 취합니다. 물론 관련 문자 세트 구성을 통일해야 합니다. 그렇지 않으면 깨질 수 있습니다. Baidu에 가서 각각을 볼 수 있습니다. 문자 세트는 무엇을 의미합니까?
그런 다음 mysql 서비스를 닫고 구성을 시작합니다(mysqld --install 입력):
1. 관리자가 아닌 사람이 cmd를 열고 mysqld --install을 입력하면 명령이 거부된다는 다음 메시지가 보고됩니다.
2. 대신 관리자로 열면 서비스가 이미 존재한다고 나옵니다(그런 다음 먼저 삭제하세요):
3. mysql 서비스 쿼리: sc query mysql(다음에서도 찾을 수 있음) 제어판-관리도구-서비스) 또는 직접 서비스 검색)
4. 삭제: (제어판-관리도구-서비스에서 제거하거나 서비스를 직접 검색할 수도 있습니다)
5. 물론 다시 설치하기 전에 mysql을 중지하세요. 먼저 삭제하더라도 다음과 같이 표시됩니다.
6. 이전에 제거한 적이 있어서 제어판에서 중지했는데(명령줄: net stop mysql) 다시 실행하여 mysql 서비스를 성공적으로 시작했습니다. 같은 시간:
7. 다시 시작되었습니다. 올라가서 변경 사항이 성공했는지 확인하세요.
8. 그러면 여기까지 몇 번 시도해 봤습니다. mysql 서비스를 다시 시작할 때마다 my.ini에 따라 변경됩니다. 즉, 나중에 만족스럽지 않으면 다시 시작할 필요가 없습니다. my.ini를 변경하고 서비스를 다시 시작하기만 하면 됩니다. 그림에 표시된 대로:
다시 변경하겠습니다.
구성은 여기까지입니다. 안녕!
위 내용은 mysql5.7.18 문자 집합 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!