데이터베이스 서버 (mysql 워크 벤치)에 연결할 수 없습니다.


87

이 문제를 해결하도록 도와 주시겠습니까?

Mysql 워크 벤치의 데이터베이스 메뉴에서 "쿼리 데이터베이스"를 클릭하려고 할 때. 그것은 나에게 오류를 준다.

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from


3
이 대답은 저에게 효과적이었습니다. stackoverflow.com/questions/16129399/…
mcaleaa 2013

내 경우 간단한 재시작 도움말 - 그러나 나는 먼저 @sergio 제안을 확인 - stackoverflow.com/a/7875732/6705161을 .
dannydedog

답변:


105

이 문제는 우분투 16.04로 업그레이드하는 동안 암호가 설정되지 않은 경우 기본적으로 루트 사용자에 대해 소켓 인증이 활성화되어 있기 때문일 수 있습니다.

해결책은 기본 암호 인증으로 되 돌리는 것입니다. 다음을 수행하여 소켓 인증을 사용하여 MySQL에 로그인하면됩니다.

sudo mysql -u root

로그인 후 :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

기본 (이전 기본값) 암호 인증으로 되돌아갑니다.

이제 MySQL에서 필요할 때마다 암호를 암호 로 사용 하십시오.


3
그것은 나를 위해 일했습니다. 놀랍습니다. mysql을 설치하는 동안 이미 엄격한 암호를 구성하고 주어진 alter 쿼리에 사용되는 동일한 엄격한 암호를 구성했습니다. 나는 그것이 첫 번째 시도 자체에서 일을 didnt한다 이유를 알고 골동품이야
또는 Vipul 파틸

감사합니다! 이 동작은 암호를 입력하지 않고 mysql에 로그인하는 유닉스 루트 사용자를 위해서만 생성됩니까?
Igor de Lorenzi

1
훌륭한 솔루션입니다. 감사합니다!
Valney Faria

56

services.msc시작 메뉴 검색 상자에서 열고 MySQL 서비스를 수동으로 시작하거나 상자에 직접 작성해보십시오 services.msc .Run


1
나를 위해 일하지 않았습니다. 명령 줄 ´C : \ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console´에서 직접 실행 ( "mysql"과 ".exe"사이의 "d"는 작동했지만 명령 줄 "관리자 권한"). 따라서 "관리자 권한"으로 서비스를 시작하는 방법을 찾는 것이이 문제를 해결할 수 있다고 생각합니다.
Adrien Be

5
시작 메뉴 검색 창은 어디에 있습니까?
Everyone_Else

내 솔루션은 sudo로 Mysql-Workbench를 실행했습니다 sudo mysql-workbench . services.msc를 찾을 수있는 곳을 몰랐습니다
Luigi Lopez

33

이 오류의 원인이 많은 것 같습니다.

내 원인 / 솔루션

제 경우 원인은 내 서버가 localhost의 연결 만 허용하도록 구성 되었기 때문입니다. 이 문서에 따라 문제 를 해결했습니다. MySQL 데이터베이스 서버에 대한 원격 액세스를 활성화하려면 어떻게합니까? . 내 my.cnf파일에 skip-networking줄 이 없어서 방금 줄을 변경했습니다.

bind-address = 127.0.0.1

...에

bind-address = 0.0.0.0

이를 통해 127.0.0.1뿐만 아니라 모든 IP에서 연결할 수 있습니다.

그런 다음 다음 터미널 명령을 실행하여 클라이언트 컴퓨터에서 연결할 수있는 MySql 사용자를 만들었습니다.

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

1.2.3.4연결하려는 클라이언트의 IP는 어디에 있습니까 ? 정말 문제가 있으면 사용자가 모든 IP에서 연결하도록 허용하는 '%'대신을 사용할 수 있습니다 '1.2.3.4'.

기타 원인

상당히 광범위한 목록 은 액세스 거부 오류의 원인을 참조하십시오 .


AFAIK, 사용자 루트는 관리자 작업에만 사용해야하고 로컬 호스트로 제한되어야하기 때문에 사용자 생성이 필요합니다. 그 이상으로 생성하는 사용자는 당신에게 달려 있습니다!
user3791372

액세스 거부 오류 원인에 대한 링크가 이제 끊어졌습니다.
Matt Coubrough

20

이것이 Workbench의 문제인지 일반적인 연결 문제인지 확인하려고 했습니까? 이 시도:

  1. 터미널 열기
  2. 유형 mysql -u root -p -h 127.0.0.1 -P 3306
  3. 성공적으로 연결할 수 있으면 암호를 입력 한 후 mysql 프롬프트가 표시 quit됩니다 (종료하려면 입력 하고 입력하십시오).

이것이 어떻게 작동했는지보고하십시오.


안녕하세요, "mysql은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다."라고 말합니다. 정말 고맙습니다.
user948950

1
mysql bin 디렉토리 ( bin기본 MySQL 디렉토리 내의 디렉토리)를 시스템 경로 에 추가 할 수 있습니다 . 그러면 mysql 클라이언트 프로그램을 어디서나 사용할 수 있습니다. 또는 MySQL bin 디렉토리로 cd-ing 한 후 해당 명령을 실행할 수 있습니다. 둘 다 작동합니다.
Sergio

2
이 명령으로 mysql에 연결할 때 $> mysql -u root -p -h 127.0.0.1 -P 3306 Enter password : ERROR 1045 (28000) : access denied for user 'root'@ 'localhost'(using password : NO) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 비밀번호 입력 : ERROR 1045 (28000) : 'root'@ 'localhost'사용자에 대한 액세스가 거부되었습니다 (비밀번호 사용 : YES) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 비밀번호 입력 : 오류 1045 (28000) : 'admin'@ 'localhost'사용자의 액세스가 거부되었습니다 (비밀번호 사용 : YES) [root @ localhost ~] #
Sumit Munot 2013

15

Mac OS 에서 비슷한 문제가 발생하여 다음과 같이 해결할 수있었습니다.

터미널에서 다음을 실행합니다.

mysql -u root -p -h 127.0.0.1 -P 3306

그런 다음 암호를 입력하라는 요청을 받았습니다. 암호가 설정되지 않았기 때문에 방금 Enter 키를 눌렀습니다 .

다음과 같은 메시지를 받았습니다.

MySQL 모니터에 오신 것을 환영합니다. 명령은; 또는 \ g. MySQL 연결 ID는 181입니다. 서버 버전 : 8.0.11 Homebrew.

mysql>에 로그인 한 경우 다음 명령을 실행하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

다음과 같은 메시지를 받아야합니다.

쿼리 OK, 영향을받는 행 0 개 (0.19 초)

이제 암호는 " password "이고 사용자 이름은 " root "입니다.

해피 코딩 :)


익명 로그인이 비활성화되어 있으므로 최신 설치에서는 더 이상 작동하지 않을 것입니다.
en_lorithai


7

Workbench를 관리자로 시작해야했습니다. 분명히 내 localhost 데이터베이스 서버 프로세스에 연결하는 데 필요한 권한이 없었습니다.

Workbench 바로 가기를 마우스 오른쪽 단추로 클릭하고을 선택 Run as Administrator합니다. 바로 가기의 속성 창에서 "고급"을 클릭하고 "관리자 권한으로 실행"옆에있는 상자를 선택하여 항상 관리자 권한으로 워크 벤치를 실행할 수 있습니다.


5

이 오류는 mysql 서버가 컴퓨터에서 시작되지 않기 때문에 발생합니다. 수동으로 시작해야합니다. 다음 단계를 수행하십시오.

  1. 컴퓨터 ( http://wampserver-64bit.en.softonic.com/ )에 비트 버전 (32 비트 또는 64 비트)에 따라 wamp 서버를 다운로드하여 설치합니다. 이 링크를 사용하면 64 비트 용 wamp 서버를 다운로드 할 수 있습니다.

  2. 설치하자마자 두 번 클릭하여 실행할 수 있습니다. (작업 표시 줄의 오른쪽에 아이콘이 표시됩니다. 숨겨져있을 수 있으므로 앱 숨기기 실행을 표시하는 화살표를 클릭 할 수 있습니다.) 아이콘을 클릭하고 Mysql 로 이동하십시오.

  3. 그런 다음 서비스 로 이동하면 서비스 시작 / 다시 시작 을 찾을 수 있습니다 .

  4. 이제 완료되었습니다 .mysql 워크 벤치를 열고 확인하십시오. 작동합니다 ..


4

나는이 문제로 잠시 어려움을 겪었고 이것을 발견하기 전에 MySQL을 여러 번 다시 설치했습니다.

명령 줄을 사용하여 모든 DB에 액세스 할 수 있기 때문에 MySQL 서버가 정상적으로 실행되고 있다는 것을 알고 있습니다.

이것이 당신을 위해 작동하기를 바랍니다.

에서 MySQL의 워크 벤치 (5.2.47 CE)

Mange Server Instances (오른쪽 하단 모서리)를 클릭하십시오.

연결을 클릭하십시오

연결 상자를 선택 :

로컬 인스턴스 ($ ServerName)-root@127.0.0.1 : 3306 '<'Standard (TCP / IP)>

선택 항목 편집 ...을 클릭합니다 .

매개 변수 아래 에서 호스트 이름 localhost 또는 127.0.0.1 을 NetBIOS 이름으로 변경 하십시오.

연결 테스트를 클릭하십시오.

이것이 당신에게 효과가 있다면 좋습니다. 그렇지 않으면 호스트 이름을 원래대로 변경하십시오.


1
NetBIOS 이름은 무엇입니까?
UserYmY

2
이것은 나를 위해 일했습니다. NetBIOS 이름은 컴퓨터의 이름이며 시스템 속성, '컴퓨터 이름'탭, '전체 컴퓨터 이름'에서 읽을 수 있습니다.
NeonMan

3

표시되는 초기 오류 메시지는 다음과 같습니다.

org.freedesktop.secrets라는 이름이 .service 파일에서 제공되지 않았습니다.

다음을 사용하여 gnome-keyring을 설치하십시오.

sudo apt install gnome-keyring

2

제 이유는 최신 MySQL Workbench 8.x를 사용하여 MySQL Server 5.1 (둘 다 Windows Server 2012에서 실행 됨)에 연결하려고했기 때문입니다.

MySQL Workbench 8.x를 제거하고 MySQL Workbench 6.3.10을 설치하면 localhost데이터베이스에 성공적으로 연결되었습니다.


1

상위 버전 및 이후 방문자를위한 최신 정보 :

현재 나는 구글 안드로이드의 전제 조건으로 파이썬 2.7.4를 포함하여 다른 도구를 가진 win7 64bit에서 작업하고 있습니다 ...

64 비트 성능을 갖기 위해 WB 6.0.8-win32에서 상위 버전으로 업그레이드했을 때 예를 들어 6.3.5-winx64에서 몇 가지 문제가 발생했습니다. 테이블의 세부 정보보기 (무질서보기)에 버그가있어서 6.2로 다운 그레이드했습니다. 5-winx64.

GUI를 사용자로 쉽게 앞으로 / 뒤로 엔지니어링 및 DB 서버 관련 항목은 잘 작동하고 있지만, 우리가하려고 할 때 Database>Connect to Database우리는해야합니다 Not connected우리는 그러나 DB 서버 서비스가 절대적으로 실행되는 쿼리를 실행하려고 잘 작동하는지 파이썬 오류를해야합니다 이 문제는 서버가 아니라 워크 벤치에서 발생합니다. 이 문제를 해결하려면 Query>Reconnect to ServerDB 연결을 명시 적으로 선택 해야하며 거의 모든 것이 좋아 보입니다 (이는 여러 db 연결 때문일 수 있으며 워크 벤치에서 기본 db 연결을 정의하는 솔루션을 찾을 수 없음).

참고로 : 나는 최신 Xampp 버전을 사용하고 있기 때문에 (심지어 Linux에서도 중독성이 있습니다 :) 최근 Xampp는 mysql 5.x 대신 mariadb 10을 사용하므로 mysql 파일 버전이 10이되면 프로 시저의 포워드 엔지니어링과 같은 문제가 발생할 수 있습니다 해결할 수 mysql_upgrade.exe있지만 여전히 db 연결을 확인하려고 할 때 wb는 잘못된 버전에 대해 알려 주지만 중요하지는 않으며 잘 작동합니다.

결론 : 따라서 때때로 워크 벤치의 db 연결 문제는 서버가 아닌 자체 때문일 수 있습니다 (다른 db 연결 관련 문제가없는 경우).


1

제 경우에는 MySQL Workbench를 방금 설치했지만 MySQL Workbench를 제거하고 MySQL 설치 프로그램을 설치 한 후 32 비트와 64 비트 모두에 대해 동일하게 작동 한 후 매력적으로 작동합니다. 유용 할 수 있기를 바랍니다.


0

나는 또한이 문제로 꽤 오랫동안 고생했다.

MySQL 포럼 에서이 흥미로운 스레드를 건너 왔습니다 : http://forums.mysql.com/read.php?11,11388,11388#msg-11388

나는 또한 (분명히) 좋은 SO Q / A를 건너왔다.

"user948950"의 질문에 언급 된 메시지는 로그 파일이 너무 큼, 잘못된 mysql.ini 파일 값, 파일 경로의 공백, 보안 / acl 문제, 레지스트리 등.

그래서,이 문제를 고치기 위해 3 시간 동안 노력한 후 ... 나는 포기하고 좋은 오래된 재설치를하기로 결정했습니다.

이것은 (다시)이 MySQL 스레드 의이 게시물이 유용한 곳입니다 .

Gary Williams는 다음과 같이 썼습니다. Hi Guys,

나는 똑같은 문제가 있었고 이것이 작동하지 않는 설치로 시작하여 나를 위해 작동하는 방법입니다.

  1. 기존 mysql 설치에 대한 Windows 서비스를 중지하십시오.

  2. Mysql을 제거합니다.

대부분의 제거와 마찬가지로 오래된 파일이 남아 있습니다. 디렉토리가 C : \ mysql \ etc이면 innob 등의 파일을 삭제하되 디렉토리 자체와 기존 데이터베이스는 'data'에 그대로 둡니다. 디렉토리가 C : \ Program Files \ etc이면 모든 mysql 디렉토리를 삭제하십시오.

  1. 이제 regedit를 실행하여 제거시 이전 레지스트리 항목도 삭제되었는지 확인하는 것이 좋습니다. 그렇지 않은 경우 삭제하십시오.

  2. 새 .msi 설치 프로그램 (필수 파일 만 해당)을 사용해도되지만 ....

  3. 기본 설치 경로를 사용하지 마십시오! 어떤 천재는 그 안에 공백이있는 길을 설정했습니다! 사용자 지정 설치를 선택하고 적절한 경로 (예 : C : \ mysql)를 선택합니다 (Adrien 참고 : C : \ mysqldata for ... 데이터)

  4. 보안 설정을 변경하도록 선택하지 마십시오. 해당 상자의 선택을 취소하면 루트 암호를 설정하지 않아도 설치가 완료됩니다.

나는 모든 것을 기억했다고 생각한다.

행운을 빕니다

게리

이전 "data"디렉토리에있는 데이터베이스를 새 디렉토리에 복사 / 붙여 넣기 만하면 문제가 발생했습니다. 그래서 제가 찾은 해결책은 각 데이터베이스를 내 보낸 다음 (많은 재미를 알고 있습니다) 하나씩 다시 가져 오는 것이 었습니다.

참고 : 나는 가져 오려면 다음 명령을 사용하는 C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql"예입니다,C:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"


0

이전과 마지막에 비슷한 상황에 처해 있었는데 Windows 업데이트 문제 (확실하지 않음)였습니다. 이번에는 MySQL 워크 벤치를 열었고 로컬 데이터베이스에 대한 연결을 찾지 못했습니다. 내 테이블을 볼 수 없지만 어제 데이터베이스에 연결할 수있었습니다.

내 원인은 내 컴퓨터를 잠시 잠자고 다시 깨운 후 mysql 서비스가 실행되지 않는다는 것입니다. 내 솔루션 : "mysql"이라는 서비스를 다시 시작하고 워크 벤치를 다시 실행합니다. 서비스를 다시 시작하는 데 시간이 걸리지 만 작동합니다.


0

내 문제는 MySQL 서버가 실제로 설치되지 않았다는 것입니다. MySQL 설치 프로그램을 실행했지만 MySQL 서버를 설치하지 않았습니다.

설치 프로그램을 다시 실행하고 "추가"를 클릭 한 다음 MySQL 서버를 목록에 추가했습니다. 이제 잘 작동합니다.


0

문제는 MYSQL 서버가 설치되어 있지 않다는 것입니다. 설치 프로그램은여기

그런 다음이 6 분 설치 자습서를 시청하십시오. .

그런 다음 MYSQL Workbench에서 새 연결을 생성하는 것이 작동하지 않으면 아래에 표시된대로 해당 연결을 루트로 실행해야합니다.

여기에 이미지 설명 입력

.ini 파일을 찾지 못하면 이 답변을 확인 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.