-
[MySQL] 버그 / 오류 해결 모음개발 일기/오류 일기 2023. 12. 24. 23:01728x90
MySQL을 만지다가 겪었던 버그/오류들과 그걸 어떻게 해결했는지 정리해뒀습니다. 원하시는 내용은 ctrl + f 를 통해 찾아주세용
1. incompatible/nonstandard server version or connection protocol detected (8.1.0)
8.1 버전의 오류인 것 같더라고요. 그냥 MySQL 삭제 후 다시 설치하면 됩니다.
MySQL 삭제 후 재설치할 때 꼭 SQL을 완전히 제거 후 설치하셔야 돼요!
1. 제어판에서 MySQL이 들어간 모든 것 삭제
2. 나머지 sql 파일들 삭제
- C:\Program Files
- C:\Program Files (x86)
- C:\ProgramData (숨김 폴더)
이 폴더들의 mysql 폴더도 삭제해줘야 합니다. 저 같은 경우에는 마지막 폴더는 귀찮아서 냅뒀습니다. 어차피 사용 몇 번 안 해서 괜찮다고 생각했어요. 그 후 다른 게시글들에 따라서 MySQL과 Workbench를 다운 받아주면 됩니다. 꼭 명심해야 하는 건 "8.0.35" 버전을 다운 받으셔야 같은 오류가 또 안 떠요!
2. Error 1064: You have an error in your SQL syntax
Error 1064 테이블을 만들다가 오류가 났습니다. 검색해보면 SQL문 오류라고 하는데? 저는 SQL문을 손으로 타이핑한 것도 아니고 그냥 왼쪽 table 메뉴에서 오른쪽 클릭으로 생성했거든요. 일단 잘못했더라도 내 잘못은 아닌 것 같은데? 하고 찾아보니... table을 생성하며 column을 함께 생성하지 않아서 생긴 오류였습니다.
3. Error 1251: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client'
(cmd에서의 mysql 오류는 3-1 부터 있어용)
npm run start로 실행하려다가 난 오류였습니다. 시도해본 방법은
1. mysql내에서만이 아닌 웹에서 접근해야 하는데 외부 접근을 허용하지 않은 상태였기 때문?
우선 누구누구 허용되는가를 보려면 이렇게 쳐주면 됩니다.
mysql> select host, user from mysql.user;
외부의 접근을 받기 위해서는 순서대로
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
입력해주시면 됩니다. sql 역시 ; 단위로 문장이 끊어지니 그대로 실행해주세요.
2. 비밀번호 플러그인 오류
비밀번호나 플러그인 등을 확인하기 위해서는
mysql> select host, user from mysql.user;
적어주면 됩니다. 그렇게 했을 때
쿼리로 플러그인 검색 이런 식으로 나오는데 저 root의 플러그인이 mysql_native_password가 아닐 때도 이 오류가 뜬다고 하더라고요. 저는 일단 그 문제가 아니라 패스하지만 이 문제인 것 같다 싶으시면 이쪽에서 확인해보세요!
https://velog.io/@nari120/MySQL-ERNOTSUPPORTEDAUTHMODE-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0
[MySQL 8.0] nestjs 연동시 에러 해결 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested
위와같이 host에 localhost 이외의 주소가 없다면 외부 접속 허용이 불가능한 것이다.MySQL에서 % 는 와일드 카드로 사용된다.서버와 같은 외부에서 허용하도록 하려면 host주소에 %로 지정해주면 된다
velog.io
3. 설마 sql서버가 안 돌아가고 있었나?
싶은 생각... 이거는 귀찮으니까 내일 할랭
3-1. 'mysql'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
cmd로 mysql을 접근하려고 작성했으나 저런 오류가 떴습니다. 이 부분은 환경 변수에 mysql이 없어서 실행할 수 없다고 하는 오류입니다. 이 부분은 다른 언어들처럼 환경변수에서 mysql의 주소를 적어 넣어주시면 됩니다. 설치하실 때 임의로 위치를 변경하지 않으셨다면
C:\Program Files\MySQL\MySQL Server (mysql버전)\bin
를 적어주시면 됩니다. 환경 변수 추가는 윈도우11 기준으로
윈도우 검색에서 '시스템 환경 변수 편집' 검색 -> 환경 변수 -> 시스템 변수에서 Path(PATHEXT X) 선택 후 편집 -> 새로 만들기 -> 주소 붙여넣기 -> 확인을 누르며 저장
해주시면 됩니다. 그냥 X 버튼으로 종료해버리면 저장이 안 되니 주의해주세요!
3-2. ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'
cmd를 통해 mysql로 접근할 때 안 되는 오류였습니다. 해석해보면 localhost나 ODBC의 접근이 허용되지 않았다는 의미입니다. 이럴 때는
mysql -u root -p
를 cmd에 입력하고 비밀번호를 입력하면 자연스럽게 접근이 허용됩니다. 뒤에 DB이름을 넣어주시면 바로 그 DB로 이동됩니다.
728x90'개발 일기 > 오류 일기' 카테고리의 다른 글
[TailwindCSS v4.0] 버그/오류 해결 모음 (0) 2025.03.24 [Vue] 버그 / 오류 해결 모음 (0) 2024.12.30 [Github] main and branch are entirely different commit histories 해결 (0) 2023.12.30