코드를 사용 mysqld_safe --skip-grant-tables &
했지만 오류가 발생하면
mysqld_safe UNIX 소켓 파일 용 '/ var / run / mysqld'디렉토리가 없습니다.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
나는 해결했다 :
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
지금은 같은 코드를 사용 mysqld_safe --skip-grant-tables &
하고 GET을
mysqld_safe / var / lib / mysql에서 데이터베이스로 mysqld 데몬 시작
내가 사용하면 $ mysql -u root
얻을 것이다 :
서버 버전 : 5.7.18-0ubuntu0.16.04.1 (우분투)
Copyright (c) 2000, 2017, Oracle 및 / 또는 그 계열사. 판권 소유.
Oracle은 Oracle Corporation 및 / 또는 그 계열사의 등록 상표입니다. 다른 이름은 해당 소유자의 상표 일 수 있습니다.
'help;'를 입력하십시오. 또는 도움을 받으려면 '\ h'. 현재 입력 명령문을 지우려면 '\ c'를 입력하십시오.
MySQL>
이제 비밀번호를 변경해야합니다.
mysql> use mysql
mysql> describe user;
테이블 및 열 이름 완성을위한 테이블 정보 읽기이 기능을 해제하여 -A로 더 빠르게 시작할 수 있습니다.
데이터베이스가 변경됨
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
또는 어디에서나 연결할 수있는 mysql 루트 계정이있는 경우 다음을 수행해야합니다.
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
다른 방법 :
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
그리고 어디서나 액세스 할 수있는 루트 계정이있는 경우 :
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
이제 quit
mysql에서 시작하고 중지 / 시작해야합니다.
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
이제 다시 mysql -u root -p를 입력하고 새 암호를 사용하여
MySQL>