ERROR 2002 (HY000) : '/var/run/mysqld/mysqld.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).


441

Ubuntu 12.04 LTS (Precise Pangolin) 에 LAMP 를 설치 한 다음 phpMyAdmin에 루트 비밀번호를 설정했습니다 . 비밀번호를 잊어 버려 로그인 할 수 없습니다. 터미널을 통해 비밀번호를 변경하려고하면 다음과 같은 결과가 나타납니다.

ERROR 2002 (HY000) : '/var/run/mysqld/mysqld.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).

이 문제를 어떻게 해결할 수 있습니까? 램프를 열거 나 제거하거나 다시 설치할 수 없습니다.


아마 쉽게 다시 설치 : stackoverflow.com/a/31984482/763744
Zernel

MySQL을 중지하고 안전 모드에서 시작하여 --grant 테이블을 건너 뛰어 비밀번호를 재설정하십시오.
davejal

터미널에 이것을 입력하십시오 "sudo apt-get install mysql-server"
Humphrey

mysql 서비스를 시작 또는 재시작하고 확인하십시오. sudo /etc/init.d/mysql 시작 또는 sudo /etc/init.d/mysql 재시작
Jitendra Patel

systemctl start mariadb.service
Thewebus

답변:


253

한 번이 문제가 발생하여을 설치하여 해결 mysql-server했으므로 mysql-server, mysql-client또는 다른 것이 아닌 을 설치했는지 확인하십시오 .

이 오류는 파일 /var/run/mysqld/mysqld.sock이 존재하지 않음을 의미 하며, 설치하지 않으면 mysql-server파일이 존재하지 않습니다. 이 경우에는

sudo apt-get install mysql-server

그러나 mysql-server이미 설치되어 실행중인 경우 구성 파일을 확인해야합니다.

구성 파일은 다음과 같습니다.

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

에서 /etc/my.cnf, 소켓 파일 설정이있을 수 있습니다 /tmp/mysql.sock와의 /etc/mysql/my.cnf소켓 파일 설정을 할 수있다 /var/run/mysqld/mysqld.sock. 따라서 제거하거나 이름을 바꾸고 /etc/mysql/my.cnfmysql을 사용하게 /etc/my.cnf하면 문제가 해결 될 수 있습니다.


mysql 데몬을 실행하고 mysql-server-core를 설치할 수 있지만 바이너리 및 시스템 데이터베이스 설정 인 mysql-server를 설치해야합니다!
Cedric

99
sudo apt-get install mysql-server우분투에서 MySQL을 설치
towry의

9
기술적으로 설명해야한다면 1) "mysql -u <user_name> -h <MySQL_Server_address> -p"를 실행하는 경우 실제로 mysql 클라이언트를 실행하여 mysql 서버에 액세스합니다. '-h'로 언급 한 주소 / IP 주소에 mysql 서버가 설치되어 있지 않으면 위의 오류가 나타납니다. 소켓 mysql.sock을 통해 MySQL 서버에 연결할 수 없기 때문입니다. 2) Mysql-server가 이미 설치되어 있으면 실행 중이어야합니다. 그렇지 않으면 동일한 오류가 발생합니다. 따라서 지정한 서버에서 실행하십시오.
Mayur Nagekar

1
데이터베이스가 저장된 디렉토리를 변경하려고 시도하지만 구성 파일에서 오타와 같은 잘못된 디렉토리를 전가하는 경우에도 발생할 수 있습니다. 오타 디렉토리가 존재하지 않는다고 알려주는 대신 액세스 권한이 없음을 알려줍니다.
Michael

4
첫 번째 단계로 서버 프로세스를 다시 시작하는 것이 좋습니다 (다른 서버와 클라이언트의 차이점 참조). sudo /etc/init.d/mysql restart를 시도하십시오. 일반적으로 다시 설치하지 않아도됩니다. 먼저 로그 파일을 확인하는 것이 좋습니다. mysql의 로그 파일뿐만 아니라 / var / log / syslog도 서버 충돌을 일으켜서 mysql이 부작용으로 고장날 수 있기 때문입니다.
Rein

212

이 시도:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

또한 (실행 중인지 확인) :

telnet 127.0.0.1 3306 

아마도 my.cnf파일 의 구성이 잘못되었을 것입니다 /etc/somewhere( Linux 배포판 에 따라 다름 ).


1
같은 오류가 발생합니다. 그리고 내가 확인했고 main과 my.cnf의 기본 바인드는 이미 127.0.0.1로 설정되어 있습니다. 그러나 위의 명령을 사용하면 연결할 수있었습니다. 왜 "mysql"을하는 것이 오류를 일으키는 지 알아 보려면 계속 사냥해야합니다.
cchiera

1
telnet을 얻습니다 : 원격 호스트에 연결할 수 없습니다 : telnet 명령의 결과로 연결이 거부되었습니다. 그러나 로컬 호스트를 열 수 있으므로 아파치가 계속 실행됩니다.
Rishi Dua

@cchiera 아시다시피, 나는 전에이 오류가 없었습니다. 그러나 ssh tunnel을 사용하여 iOS 앱을 통해 DB에 연결하려고 할 때이 2013 오류가 발생했습니다. 그것을 해결하기 위해 나는 참조 1 참조 2 를 편집 /etc/my.cnf하고 주석을 달아야했다 . 그런 다음 연결할 수 있습니다. 이 후, 나는 내가 지금이 답변에 걸렸다이 2002 오류가되었고, 지금은 그냥 입력하는 이유에 대한 설명을 얻어서 내가 당신과 동의 again.Definitely 일하고있어 실현 하지 않고 오류가 발생합니다. #bind-address = 127.0.0.1 mysql-h
Pathros

참고 : mysql -h localhost작동하지 않습니다. mysql -h 127.0.0.1답변에 명시된대로 사용하십시오 .
vadasambar

이 답변의 명령으로 로그인하면 어떻게 해결할 수 있습니까?
Carlos A. Jimenez Holmquist

128

나는이 대답을 모두보고 있어요,하지만 아무도 할 수있는 옵션이 제공하지 암호 재설정더 허용 대답을 . 실제 질문은 암호 를 잊어 버렸 으므로 재설정해야하며 이러한 답변의 대부분이 암시하는 것처럼 암호가 실행 중인지 (설치되어 있는지 여부) 확인하지 않아야합니다.


비밀번호를 재설정하려면

다음 단계를 따르십시오 (암호를 잊어 버린 경우에 도움이 될 수 있으며 현재 상황에 있지 않더라도 언제든지 시도해 볼 수 있습니다).

  1. 중지 mysql

    sudo /etc/init.d/mysql stop

    또는 다른 배포판의 경우 :

    sudo /etc/init.d/mysqld stop
  2. 안전 모드에서 MySQL 시작

    sudo mysqld_safe --skip-grant-tables &
  3. 루트를 사용하여 MySQL에 로그인

    mysql -uroot
  4. 사용할 MySQL 데이터베이스를 선택하십시오

    use mysql;
  5. 비밀번호 재설정

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
  6. 권한을 플러시

    flush privileges;
  7. 서버를 다시 시작하십시오

    quit
  8. 서버를 중지하고 다시 시작하십시오.

    우분투와 데비안 :

    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start

    CentOS, Fedora 및 RHEL에서 :

    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
  9. 새 비밀번호로 로그인

    mysql -u root -p
  10. 새로운 비밀번호를 입력하고 아무 일도 일어나지 않은 것처럼 서버를 다시 즐기십시오

이것은 MySQL 루트 암호 재설정 에서 가져 왔습니다 .


사용자 암호를 업데이트해도 나에게는 효과가 없었지만 일단 MySQL 모니터에 로그인하고 mysql 데이터베이스를 사용한 후에는 repair table user use_frm이 문제를 해결하기 위해 일했습니다. - stackoverflow.com/questions/4297592/...
크레이그 밴 퇴 네르

20
MySQL 5.7에서는 mysql.user 테이블 필드의 비밀번호 필드가 제거되었으며 이제 필드 이름은 'authentication_string'이므로 (5)는update user set authentication_string=password('mynewpassword') where user='root';
Daniel

이것을 bash 스크립트로 만드는 방법을 알고 있습니까? 상자를 다시 시작할 때마다 필요한 것 같습니다.
vphilipnyc

뭔가 해결 방법을 원한다고 말해 주지만 실제로 왜 매번이 작업을 수행하고 수정 해야하는지 알아 내려고 노력해야합니다. 대본에 대해 새로운 질문을하고 이미 시도한 것을 게시하면 다른 사람들이 도울 수 있습니다.
davejal

2
이것은 나를 위해 훌륭하게 작동했지만
Andrew Fox

68

다음 단계를 시도했습니다.

  1. 로그인 super user또는 사용sudo
  2. gedit를/etc/mysql/my.cnf 사용하여 열기
  3. 를 찾아 bind-address값을 데이터베이스 서버 호스트 시스템의 IP 주소로 변경하십시오. 나를 위해, localhost또는127.0.0.1
  4. 파일을 저장하고 닫습니다.
  5. 터미널로 돌아와서 실행 sudo service mysql start

그리고 그것은 나를 위해 일했습니다.


4
이것으로부터 방금 sudo service mysql restart를 실행하여 작동했습니다.
Orane

내 경우에는 오류가 IP로 변경되었으므로 bind-address = localhost
Nicolás Arias

@rshahriar 내 /etc/my.cnf에 bind-address라는 것은 없습니다.이 필드를 추가하는 것이 좋습니다
RCBian

@SilvioDelgado ssh 터널링을 통해 연결하려는 경우는 아닙니다. 여기에 설명
Pathros

mysql 서비스를 다시 시작해도 나에게도 효과가 있었지만 여전히 원인을 파악하고 다시 발생하지 않도록 오류 로그를 찾을 수있는 곳을 모릅니다 ...
Maleka

41

다음 명령을 실행하여이 문제를 해결했습니다.

mysql.server start

Mac에 있고 brew를 사용하여 mysql을 설치하는 경우 다음을 사용하십시오.

brew services start mysql

35

나는 비슷한 문제가 있었다. mysql이 시작되지 않습니다 :

sudo service mysql start
start: Job failed to start

의류를 사용 중지 한 경우 :

sudo aa-complain /etc/apparmor.d/*

문제가 사라졌습니다. 문제는 mysqld가 /run/mysqld/mysqld.sock에 액세스하려고했지만 apparmor 프로파일이 /var/run/mysqld/mysqld.sock에 대한 권한 만 부여했다는 것입니다 (/ var / run은 / run에 심볼릭 링크되어 있으므로 실제로 똑같다). mysqld가 모든 구성 파일에 설정되어 있기 때문에 var 경로를 사용하지 않는 이유를 모르지만 /etc/apparmor.d/usr.sbin.mysqld에 다음을 추가하여 문제를 해결할 수 있습니다.

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,

"sudo service mysql start"를 호출해야한다는 것을 몰랐습니다. 마지막으로 Ubuntu에 MySQL을 설치했을 때 설치시 자동으로 시작된 것 같습니다. Manjaro의 MariaDB는 설치 후 서비스를 명시 적으로 시작해야합니다.
dmiller309

31

제 경우에는 디스크가 가득 차서 mysqld를 더 이상 시작할 수 없었습니다.

mysql 서비스를 다시 시작하십시오.

> service mysql restart

또는

> service mysql stop

> service mysql start

stop명령을 인식하지 못하면 분명히 디스크 공간입니다. 파티션의 일부 공간을 mysql할당하거나 디스크를 크게 만들어야합니다.

디스크 공간을 확인하십시오

> df -h

2
전체 디스크와 같은 일이 나에게 일어났습니다. 일부 공간을 정리하고 재부팅하여 문제가 해결되었습니다.
Darren

2
"/etc/init.d/mysqld start"를 실행하면 문제가 발생하면 디스크 파티션이 가득 찼음을 알 수 있습니다.
Tickon

나도 마찬가지인데, 디스크 100 %. 공간 청소 및 서비스 시작 확인
Hugo Hugo

28

나는 mysql프로세스 를 죽여서 이것을 해결했다 .

ps -ef | grep mysql
kill [the id]

그런 다음 서버를 다시 시작했습니다.

sudo /etc/init.d/mysql restart

그러나 start잘 작동합니다.

sudo /etc/init.d/mysql start

그런 다음로 로그인하여 admin완료했습니다.


글쎄, 실제로 충돌하기 전에 mysql을 중단하고있었습니다. 그런 다음 "* syslog를보십시오." 및 "오류 2002 (HY000) : 소켓 '/var/run/mysqld/mysqld.sock'(111)을 통해 로컬 MySQL 서버에 연결할 수 없습니다." 마지막으로, 자체 복구를 시도하고 있다는 사실을 알고이를 종료했다가 다시 시작합니다.
cwhsu

"mysql start"가 실패하는 상황은 드물기 때문에 "restart"인수를 사용해야합니다. 데몬 프로세스를 종료해야하는 경우 kill 명령 대신 "stop"인수를 사용하는 것이 좋습니다. 그러나 killall 명령은 kill 명령 (killall mysqld)보다 편리합니다.
Rein

MySQL의 과정을 살해 한 후 다시 시작 MySQL은, 나를 위해 좋은 일
이씨 셰티

21

어떻게 든 MySQL 서버 프로세스가 소켓을 만들지 않았거나 클라이언트가 잘못된 위치에서 소켓을 찾고 있습니다.

첫 번째 제안은 MySQL 서버가 실행 중인지 확인하는 것입니다. 두 번째 제안은 MySQL 서버가 다른 호스트에서 실행되고 있습니까? 그렇다면 -h <hostname>터미널에서 MySQL 클라이언트에 플래그를 추가하십시오 .

MySQL이 실제로 실행 중이고 로컬에서 실행중인 경우 my.cnf파일을 확인하십시오 . 같은 줄이 있어야합니다

socket = /var/run/mysqld/mysqld.sock

게시물에서 언급 한 소켓 위치와 일치하는지 확인하십시오.

경험상 가장 가능성이 높은 시나리오는 MySQL 서버가 전혀 실행되지 않거나 터미널에서 MySQL 클라이언트를 실행하는 호스트와 동일한 호스트에서 실행되고 있지 않다는 것입니다.


19

프로덕션 서버를 다시 시작한 후에도 같은 문제가 발생했습니다. DigitalOcean 드롭 릿에서 Debian 8.1 (Jessie)을 실행하고 있습니다.

이것이 내 문제를 해결하기 위해 한 것입니다.

  1. 파일 /var/run/mysqld/mysqld.sock이 존재 하는지 확인하십시오 . 그렇지 않은 경우 touch /var/run/mysqld/mysqld.sock(필요한 작업) 을 입력하여 수동으로 작성하십시오 .

  2. 따라서 MySQL 프로세스는이 파일을 사용할 수 있습니다. 를 입력하여 해당 파일의 소유권을 변경하십시오 chown mysql /var/run/mysqld/mysqld.sock.

  3. '2'가 완료되면, 다음을 입력하여 MySQL의 서비스를 다시 시작 service mysql restart또는 /etc/init.d/mysql restart.

위의 단계를 수행 한 후 내 문제가 해결되었습니다. 나는이 문제가 거의 없으며 아마도 더 좋은 방법이있을 것이므로 필요한 경우 건설적인 피드백을 제공하십시오. :).


1
파일이 없다는 것을 알았고 mysql 서버를 다시 시작했습니다. 자동으로 파일을 만들고 정상적으로 시작했습니다. 리드 주셔서 감사합니다.
Sojurn

15

mysql-server가 실행되고 있지 않을 수 있습니다. mysql.server start터미널 에 입력하여 실행되는지 확인하십시오 .


15

"bind-adress"my.cnf 에서 매개 변수를 확인하십시오 .

그렇지 않으면 다음 명령으로 시도하십시오.

mysql -h 127.0.0.1 -P 3306 -u root -p
  • host의 127.0.0.1경우 -h , 즉 localhost

  • port의 3306경우 -P (대문자로 -P 참고) , 즉 MySQL의 기본 포트



11

Amazon EC2를 사용 중이고 인스턴스에서이 문제가 발생하면 다음 작업 만하면됩니다.

sudo yum install mysql-server
sudo service mysqld restart

Amazon EC2에는 서버가 설치되어 있지 않으므로 (클라이언트 만 설치됨) 인스턴스에 서버를 설치해야하는 경우

 mysql -u root -p

그것이 작동하는지 확인하십시오.


mysqld.service를 다시 시작하지 못했습니다 : mysqld.service 장치를 찾을 수 없습니다. 우분투 16.04에서
Ketav Chotaliya

9

나는 당신이 오류를 얻을 때마다 생각

ERROR 2002 (HY000) : '/var/lib/mysql/mysql.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다

먼저 mysql데몬이 실행 중인지 확인하는 것이 좋습니다 ... 대부분 기본적으로 실행되지 않습니다. 로 확인할 수 있습니다 /etc/init.d/mysqld status.

실행 중이 아니면 먼저 시작하십시오.

.../etc/init.d/mysqld start.

나는 그것이 110 % 일할 것이라고 확신합니다.


9

localhost를 사용하는 대신 :

mysql -u myuser -pmypassword -h localhost mydatabase

127.0.0.1 사용

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(또한 -p와 mypassword 사이에 공백이 없음)

즐겨 :)


mysql -u myuser -p -h 127.0.0.1 mydatabase MySQL이 암호를 묻지 만 에코하지 않으면 보안을 위해 명령 줄에서 암호를 포함시킬 수 없습니다.
DDay

1
이것은 나를 위해 해결했습니다. 그러나 여전히 왜 127.0.0.1작동 localhost하지 않는지 궁금 합니다 !
not2savvy

9

중요한 데이터베이스의 백업이 있는지 확인한 다음 MySQL 관련 항목을 제거하십시오 .

apt-get remove --purge mysql\*

그런 다음 다시 설치하십시오 .

apt-get install mysql-server mysql-client

이것은 나를 위해 일했고 데이터는 유지되었습니다.

PHP MySQL에 오류가 표시되면 PHP MySQL을 다시 설치 해야 할 수도 있습니다 .

apt-get install php5-fpm php5-mysql

나는 그것이 치명적인 무기라고 생각합니다. 나는 모든 것을 시도했지만 당신의 제안만이 나를 도왔습니다. 감사합니다 !
Messou

9

나는 또한 같은 문제에 직면 mysql server하여 기본적으로 실행 중이 아닌 경우 발생하며 몇 초 후에 다시 중지되므로 $ sudo service mysql start 알고 있으면 변경할 수있는 ( ) 명령을 다시 실행하십시오 .

그 사용 명령

$ sudo service mysql start   

(필요한 경우 사용자 비밀번호를 사용 sudo하여 입력 한 다음)

$ sudo mysql -u root -p          (put user password if required )

지금 당신은 당신의 데이터베이스를 얻었다


7

최근에 설치 한 경우 설치가 SERVER ... 설치인지 확인해야합니다. mysql-server-5.5 .. 아마도 "mysql"만 설치했을 것입니다. 이것은 서버 대신 클라이언트 일뿐입니다.


7

당신이있는 경우 XAMPP는 리눅스 시스템에 설치하여 복사하려고 my.cnf에서 파일을 /opt/lampp/etc/my.cnf/etc/my.cnf.

그런 다음 mysql -u root다시 실행 하십시오. 이제 올바른 소켓이 있고 MySQL 클라이언트를 실행할 수 있습니다.


7

나는이 문제도 가지고 있지만 방금했다 :

sudo service mysql restart 

그것은 나를 위해 일했다.


7

나는 해결책을 찾았다

명령을 실행 하기 전에 :mysql_secure_installation

  • 1 단계: sudo systemctl stop mariadb
  • 2 단계: sudo systemctl start mariadb
  • 3 단계 : mysql_secure_installation

그런 다음 루트 암호를 묻고 Enter 키누르고 새 루트 암호를 설정 하면 됩니다.


6

필자의 경우 기본 포트 3306이 다른 프로세스에서 사용되어 시작되지 않았습니다. 다른 서비스를 중지하고 수행 한 후 sudo service mysql start정상적으로 작동했습니다. BTW, sudo lsof -Pn -iTCP:3306누가 포트를 사용하고 있는지 확인할 수 있습니다.


6

내 경우에는 R & D를 수행하여 효과가있었습니다.

사용하여 MySQL에 연결할 수 있습니다

root-debian#mysql -h 127.0.0.1 -u root -p

그러나 그것은 작동하지 않습니다 mysql -u root -p.

my.cnfbind-address 에서 아무것도 찾지 못했습니다 . 그래서 로그인 문제를 일으킨 매개 변수 를 주석 처리했습니다 .socket=/var/lib/mysql/mysqld.sockmy.cnf

서비스를 다시 시작한 후 정상적으로 작동했습니다.

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

6

나는 mysql을 재시작 하여이 문제를 해결했다.

/etc/init.d/mysql stop

/etc/init.d/mysql start

그게 다야.


5

경험상 서버가 먼저 실행되고 있는지 확인한 다음 MySQL 구성을 시도해야한다고 말합니다. 마지막 해결책은 MySQL을 다시 설치하는 것입니다.


5

터미널을 열고 다음을 입력하십시오.

sudo apt-get purge mysql-client-core-5.6

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get install mysql-client-core-5.5

sudo apt-get install mysql-server  

MySQL 데이터베이스 코어 클라이언트와 MySQL 서버 패키지는 모두 동일한 버전 5.5입니다. MySQL Client 5.5와 MySQL Server 5.5는 패키지 관리자에 의해 결정된 Ubuntu 14.04에서 현재 "최상의"버전의 패키지입니다.

MySQL Client 5.6 및 MySQL Server 5.6을 설치하려면 Ubuntu Software Center에서 mysql-client-core-5.6 및 mysql-server-5.6 패키지를 찾을 수도 있습니다. 중요한 것은 클라이언트와 서버 버전 번호가 두 경우 모두 일치한다는 것입니다.

이것은 나를 위해 일했습니다.


5

올바른 권한이 있는지 확인하십시오.

sudo chmod 755 /var/lib/mysql/mysql

나는 같은 문제가 있었고 이것은 나를 위해 일했다. 이 작업을 수행 한 후 MySQL을 시작할 수있었습니다.


5

내 경우에는, 내가 실행할 때 실제로 mysql 프로세스를 죽일 수 없었던 것 같습니다.

sudo service mysql stop
ps -ef | grep mysql

mysql 프로세스는 항상 있었고 소켓 파일을 차단하는 것처럼 보였고 새로운 mysql 프로세스는 자체적으로 만들 수 없었습니다.

그래서 이것은 도움이되었습니다.

cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

이제는 다음을 사용하여 데이터베이스에 로그인 할 수 있습니다

mysql -u root

그런 다음 루트 비밀번호를 업데이트하십시오.

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

추신 : 루트 passwod를 업데이트하는 데 문제가 있습니다. "auth_socket"플러그인에 문제가있는 것 같아서 전체 권한을 가진 새 사용자를 만들어야했습니다

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

비밀번호없이 "super"사용자를 생성 한 다음 mysql -u super


답변 주셔서 감사하고 mysql에 로그인 할 수 있지만 데이터베이스에 사용자 테이블이 없습니다.
John Joe

이 솔루션이 작동합니다. 그러나 sql 문을 실행하여 root의 비밀번호를 변경하기 전에 데이터베이스를 선택해야합니다. 다음 문장을 실행하면 <br> use mysql;<br> 이제 <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Charle K를

5

데비안 서버 Jessie에서 내 작업 솔루션은 단순히

service mysql restart
service mysql reload

루트 사용자로서

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