또는

또는

Ubuntu 16.04에 MySQL을 설치 했는데 apt install mysql-server설치 중에 루트 비밀번호를 묻지 않았습니다.

설치 후 ERROR 1045로그인을 시도했을 때 root동일한 mysql_secure_installation오류가 발생했습니다. d purgeautoremoved를 다시 설치했지만 작동하지 않습니다.

이 문제를 어떻게 해결할 수 있나요? 설치 시 루트 비밀번호를 설정하지 않은 경우 루트 비밀번호를 설정할 수 있나요?

이것은 내 설치 로그입니다.

다음과 같은 추가 패키지가 설치됩니다.
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7
  mysql-서버-코어-5.7
제안된 패키지:
  메일엑스 타이니카
다음과 같은 새로운 패키지가 설치됩니다:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-서버 mysql-server-5.7
  mysql-서버-코어-5.7
0개는 업그레이드되고, 6개는 새로 설치되고, 0개는 제거되고, 0개는 업그레이드되지 않습니다.
0B/17,9MB의 아카이브가 필요합니다.
이 작업 후에는 160MB의 추가 디스크 공간이 사용됩니다.
계속하시겠습니까? [예/아니요] 예
패키지를 사전 구성하는 중...
이전에 선택 취소된 패키지 libaio1:amd64를 선택합니다.
(데이터베이스를 읽는 중...현재 설치된 파일 및 디렉터리 227144개.)
압축 풀기 준비 중 .../libaio1_0.3.110-2_amd64.deb ...
libaio1:amd64(0.3.110-2) 압축 풀기...
이전에 선택하지 않은 패키지 mysql-client-core-5.7을 선택합니다.
압축 풀기 준비 중 .../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-client-core-5.7(5.7.12-0ubuntu1) 압축 풀기...
이전에 선택하지 않은 패키지 mysql-client-5.7을 선택합니다.
압축 풀기 준비 중 .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-client-5.7(5.7.12-0ubuntu1) 압축 풀기...
이전에 선택하지 않은 패키지 mysql-server-core-5.7을 선택합니다.
압축 풀기 준비 중 .../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-server-core-5.7(5.7.12-0ubuntu1) 압축 풀기...
이전에 선택하지 않은 패키지 mysql-server-5.7을 선택합니다.
압축 풀기 준비 중 .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
mysql-server-5.7(5.7.12-0ubuntu1) 압축 풀기...
이전에 선택하지 않은 mysql-server 패키지를 선택합니다.
압축 풀기 준비 중 .../mysql-server_5.7.12-0ubuntu1_all.deb ...
mysql-server(5.7.12-0ubuntu1) 압축 풀기...
libc-bin(2.23-0ubuntu3)에 대한 처리 트리거...
man-db(2.7.5-1)에 대한 처리 트리거...
systemd(229-4ubuntu4)에 대한 처리 트리거...
ureadahead(0.100.0-19)에 대한 처리 트리거...
libaio1:amd64(0.3.110-2) 설정 중...
mysql-client-core-5.7(5.7.12-0ubuntu1) 설정 중...
mysql-client-5.7(5.7.12-0ubuntu1) 설정 중...
mysql-server-core-5.7(5.7.12-0ubuntu1) 설정 중...
mysql-server-5.7(5.7.12-0ubuntu1) 설정 중...
업데이트 대안: /etc/mysql/mysql.cnf를 사용하여 자동 모드에서 /etc/mysql/my.cnf(my.cnf) 제공
업데이트가 필요한지 확인 중입니다.
이 MySQL 설치는 이미 5.7.12로 업그레이드되었습니다. 여전히 mysql_upgrade를 실행해야 하는 경우 --force를 사용하세요.
mysql-server(5.7.12-0ubuntu1) 설정 중...
libc-bin(2.23-0ubuntu3)에 대한 처리 트리거...

답변1

그랜트 테이블을 로드하지 않고 mysql을 시작하면 현재 비밀번호를 몰라도 루트 비밀번호를 복구하거나 설정할 수 있습니다.

참고하시기 바랍니다$명령에서. 이는 명령을 입력할 때 표시되는 터미널 프롬프트를 지정하는 것입니다. 텍스트 줄이지만 실제 입력된 터미널 명령임을 보여줍니다. "mysql>" 접두어도 프롬프트입니다. 이는 실행할 때 나타나는 프롬프트입니다.mysql상호작용적으로.

이것이CLI(명령줄) 이렇게 하려면:
(반드시현재 서버를 중지해단계를 수행하기 전에. 한 번에 하나의 서버만 실행할 수 있습니다.)

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

이제 비밀번호 없이 루트로 로그인하여 모든 명령을 수행할 수 있습니다. 이 경우 루트 비밀번호를 루트로 설정하세요.

$ sudo mysql --user=root mysql

MySQL 5.6 이하 버전을 사용하는 경우 mysql 내에서 수행할 루트 비밀번호 설정은 다음과 같습니다.

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

MySQL 5.7 이상

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

거기에서 mysql을 종료(실행 중인 msqld 종료)하고 정상적으로 시작합니다.

mysql 서비스 시작 및 중지에 대한 참고 사항:

MySQL을 중지합니다.

$ sudo service mysql stop

mysql을 시작합니다(일반):

$ sudo service mysql start

임시 mysql 안전 모드 세션을 종료합니다.

$ sudo mysqladmin shutdown

답변2

mysqlUbuntu 16.04에 설치하는 동안 비밀번호를 묻지 않지만 다음과 같은 방법으로 설치에 성공하면 비밀번호를 설정할 수 있습니다.

mysql 설치가 완료되면 다음 명령을 실행합니다.

sudo mysql_secure_installation

다음이 표시됩니다.

참고: 프로덕션 용도로 사용되는 모든 MariaDB 서버에 대해 이 스크립트의 모든 부분을 실행하는 것이 좋습니다! 각 단계를 주의 깊게 읽어주세요!

MariaDB에 로그인하여 보안을 유지하려면 루트 사용자의 현재 비밀번호가 필요합니다. 방금 MariaDB를 설치했고 아직 루트 비밀번호를 설정하지 않았다면 비밀번호는 비어 있으므로 여기서 Enter 키를 누르시면 됩니다.

Enter current password for root (enter for none): (여기서 Enter를 누르세요)

알겠습니다. 비밀번호를 성공적으로 사용했습니다. 계속해서...

루트 비밀번호를 설정하면 적절한 인증 없이는 누구도 MariaDB 루트 사용자에 로그인할 수 없습니다.

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

비밀번호가 성공적으로 업데이트되었습니다! 권한 테이블을 다시 로드하는 중입니다.. ... 성공했습니다!


Ubuntu 18.04 또는 mysql-server버전 5.7.22의 경우 이 방법은 작동하지 않습니다.

Ubuntu 18.04에서 루트 비밀번호를 설정하려면 먼저 처음 세 명령 또는 처음 두 단계를 따르십시오.LD 제임스의 답변그런 다음 실행

mysql> alter user 'root'@'localhost' identified by '<password>';

루트 사용자의 비밀번호가 설정되었습니다!

또는

18.04에서 루트 비밀번호를 설정하려면 다음 단계를 따르세요.

루트 사용자에 대한 비밀번호가 설정되어 있지 않으므로 간단히 로그인하십시오.빈 비밀번호

sudo mysql -u root -p
Enter password: (press enter as no password is set)

그 후에는 쉽게 쿼리를 실행할 수 있습니다

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

답변3

설치 후:

  1. sudo mysql (예, 사용자 없음, 패스 없음)

  2. 이제 mysql 콘솔에 있습니다. 실행하다:

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

  3. FLUSH PRIVILEGES;

그게 다야. 이제 평소처럼 다음에 콘솔에 들어갈 수 있습니다.

mysql -u root -pmy_new_pass

답변4

  1. 기본 사용자 계정이 있습니다.

    $ vim /etc/mysql/debian.cnf 
    

    다음과 같이 이 계정을 얻을 수 있습니다.

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. 이 계정으로 로그인하세요

    $ mysql -u debian-sys-maint -p
    
  3. 루트 비밀번호를 편집하세요

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. MySQL을 다시 시작

    $ /etc/init.d/mysql restart;
    

mysql -u root -p그런 다음 이전 설정을 사용할 수 있습니다 .

관련 정보