Ubuntu 16.04에서 MySQL Workbench를 통해 localhost에 연결할 수 없습니다 (암호없는 루트) 중 두 대도 연결할 수없는

Oracle 웹 사이트는 15 및 14에서만 작동 함을 의미하는 것 같습니다.
http://dev.mysql.com/downloads/workbench/

또한 내 Ubuntu 16.04 컴퓨터 중 두 대도 연결할 수없는 것 같습니다 (루트에 대한 액세스가 거부되었습니다 오류)

그림

괜찮습니다. 괜찮습니다. 그러나 localhost에 연결되지 않습니다.

누구 운이 있니?



답변

이 문제는 16.04로 업그레이드하는 동안 암호를 설정하지 않으면 루트 사용자에 대해 소켓 인증이 기본적으로 활성화되어 있기 때문일 수 있습니다. 이 중요한 경고는 16.04 릴리스 노트에 설명되어 있습니다 .

MySQL 루트 비밀번호가 비어있을 때 비밀번호 동작이 변경되었습니다. 패키징은 이제 MySQL 루트 암호가 비어있을 때 소켓 인증을 활성화합니다. 이는 루트가 아닌 사용자가 빈 비밀번호로 MySQL 루트 사용자로 로그인 할 수 없음을 의미합니다.

어떤 이유로 든 16.04와 함께 제공된 MySQL Workbench는 적어도 MySQL 서버에서 기본적으로 작동하지 않습니다. “로컬 소켓 / 파이프”를 사용하여 여러 가지 방법으로 연결했지만 아무 소용이 없었습니다.

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

sudo mysql -u root

로그인 한 후 :

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

기본 (이전 기본값) 비밀번호 인증으로 되돌아갑니다. 문제를 해결하기 위해 다른 방법을 시도한 경우 mysql.user의 “plugin”필드가 “auth_token”으로 설정되어 있는지 확인해야합니다.이 경우 mysqld_safe를 사용하여 MySQL에 로그인해야합니다. 내가했던 것처럼 일을하고 있었어

에 신용 미겔 니에 토의 블로그 게시물 이 솔루션.


답변

MySQL 5.7 이상은 “루트”로의 연결을 지원하지 않으므로 mysql-workbench일반 사용자를 생성하고이를 통해 연결해야합니다.

sudo mysql -u root -p

“admin”이라는 사용자를 작성하고이를 사용하여에 연결하십시오 mysql-workbench.

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;


답변

이 질문은 2 살 일 수 있지만 오늘 밤 mysql-workbench 작업은 저에게 답을 준 것으로 보입니다.

루트 사용자는 이제 기본적으로 auth_socket 인증을 사용합니다. root가 액세스 할 수있는 유일한 방법은 root로 로그인하는 것입니다.

mysql -u root루트 사용자와 표준 사용자로 실행 하여이 사실을 알았습니다 .

표준 사용자에서는 작동하지 않습니다.

그래서 내 다음 질문은-mysql-workbench가 어떤 사용자로 실행되는지였습니다. 기본적으로 표준 사용자로 실행됩니다. 루트 사용자로 실행하려면 루트에서 실행해야합니다. 그래서 루트 사용자 CLI로 들어가서 ‘mysql-workbench’를 입력하십시오.

그런 다음 여기에 표시된대로 루트 사용자의 설정으로 이동해야했습니다. 파일 위치는 우분투 18.04 설치에 유효합니다.

루트 연결 설정 mysql-workbench.

해당 소켓 위치가 유효하지 않으면 루트 또는 sudo에서 mysql CLI로 이동하여 다음 명령을 실행해야합니다.

소켓을 찾는 MySQL CLI 명령.

설정이 올 바르면 연결을 테스트하십시오. 성공하면 갈 준비가 된 것입니다.


답변

나에게 잘 작동하고 특별한 것은 없었습니다. mysql-server-5.7명령 행에서 설치 및 워크 벤치를 설치 하고 비밀번호로 사용자를 설정하고 일반 데이터베이스 권한을 설정하십시오 (일반적인 방법으로도).

여기에 이미지 설명을 입력하십시오

그리고 데이터베이스와 테이블로 :

여기에 이미지 설명을 입력하십시오


답변

auth_socket 플러그인을 사용하여 mysql 워크 벤치를 통해 연결할 수있는 적절한 관리 권한으로 사용자 계정을 만듭니다. 이것은 mysql 서버로의 루트 연결에는 적용되지 않는다는 점에 유의하십시오 .

터미널 세션에서 mysql에 로그온하십시오.

$sudo mysql

이 작업을 수행 할 수 있으면 auth_socket 플러그인이 활성화되고이 플러그인을 사용하여 루트 계정이 인증됩니다. 보안 설치 스크립트를 실행 한 후 우분투에 mysql을 설치할 때의 기본 설정입니다.

먼저 계정 ‘valerie’에 대한 mysql 사용자를 작성하십시오.

mysql> CREATE USER 'valerie'@'localhost' IDENTIFIED WITH auth_socket;

계정에 대한 관리 권한을 활성화하십시오.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'valerie'@'localhost' WITH GRANT OPTION;

쉘을 종료하십시오.

mysql> exit

그런 다음 mysql workbench에서 :

  1. 새로운 연결 만들기
  2. 연결 방법을 로컬 소켓 / 파이프로 선택하십시오.
  3. 님의 소켓 / 파이프 경로 설정 /var/run/mysqld/mysqld.sock을 (이것은 데비안 / 우분투 시스템과 리눅스의 다른 맛의 변경 사항에 대한 경로가 있습니다)
  4. 사용자 이름을 설정하십시오 (이 예에서는 ‘valerie’)

그런 다음이 연결로 mysql 서버에 연결할 수 있어야합니다.


답변

이 시도

MySQL 데이터베이스를 선택하십시오

1 : mysql을 사용하십시오.

2 : UPDATE 사용자 설정 plugin = ‘mysql_native_password’여기서 User = ‘root’;

3 : 플러시 권한;

4 : 종료;

~ $ sudo 서비스 mysql 재시작


답변

Ubuntu 16.04를 실행하는 AWS 호스트의 MySQL 서버; 우분투 16.04 노트북의 mysql-workbench; KeyPair 연결을 사용합니다.

테스트 DB 연결을 설정 한 후 작동했습니다. 그러나 실제 연결은 Jonathan Leaders가 게시 한 것과 같은 메시지로 항상 실패했습니다. 로그를 확인하고 “permission denied” 메시지 ~/.mysql/workbench/log가 몇 개 발견되었습니다 .

이제 mysql-workbench를 사용할 수 있습니다.
sudo mysql-workbench

그리고 나중에 갈 수 chmod있고 디렉토리에 권한이 필요합니다.