sourcecode

ubuntu 서버 16.04의 mysql 기본 비밀번호

copyscript 2023. 1. 20. 16:14
반응형

ubuntu 서버 16.04의 mysql 기본 비밀번호

16 serverubuntu 16.04를 했습니다.Mysql mysql mysql mysql mysql mysql mysql mysql mysql mysql mysql mysql 。mysql을 mysql -u root -pmysql을 사용하다본본 비밀 ???

--skip-grant-tables이치노mysql -u root패입니니다다

이하를 참조해 주세요.
sudo mysql --defaults-file=/etc/mysql/debian.cnf
Debian "Linux "MySql " credential " 。

했습니다.mysql-serverUbuntu 18.10입니다. 후 으로 root user를 .auth_socket이 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★mysql_native_password password mysql을 할 수

$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf

그 안에서 다음과 같은 선을 찾을 수 있습니다.

user     = debian-sys-maint
password = password_for_the_user

그 후, 다음과 같이 입력합니다.

$ mysql -u debian-sys-maint -p
Enter password: 

debian.cnf에서 비밀번호를 입력합니다.

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; 

다음 중 하나:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

또는 다음 중 하나를 선택합니다.

// MySQL 5.7 이상용

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';

--갱신--

경우에 따라서는 mysql 서버를 재시작해야 합니다.

sudo service mysql restart

또는

sudo systemctl restart mysql

으로는 Mysql에는 루트 이 "Mysql"로 되어 있습니다.auth_socket시스템 사용자 이름과 DB 사용자 이름이 같아야 합니다.

또는 root로 합니다.sudo -i 입력해 주세요.mysql mysql로 .root그러면 다른 운영 사용자를 생성할 수 있습니다.

호스트에 루트가 없으면 루트로 mysql에 로그인 할 수 없습니다.

비록 이것은 오래된 질문이지만, 우리들 중 몇몇은 여전히 답을 찾기 위해 애쓰고 있다.적어도 나는 했다.모든 장황한 해결책을 따르지 마세요.mysql 명령어 앞에 sudo를 추가하여 비밀번호를 입력하지 않고 root으로 로그인 할 수 있습니다(신규 설치 또는 설치 후 비밀번호를 변경하지 않은 경우). $sudo mysql -uroot -p mysql> 이는 mysql이 최신 버전 중 하나에서 보안 모델을 변경했기 때문입니다.

도움이 되었으면 좋겠다

--skip-grant-tables를 사용하여 서버를 실행하고 다음을 root 또는 sudo로 실행하여 비밀번호 없이 로그인하면 루트 비밀번호를 재설정할 수 있습니다.

service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

# service mysql stop
# service mysql start
$ mysql -u root -p

MySQL 5.7 이후 버전을 실행하는 Ubuntu 시스템에서는 루트 MySQL 사용자는 기본적으로 비밀번호가 아닌 auth_socket 플러그인을 사용하여 인증하도록 설정되어 있습니다.인증 방식을 auth_password에서 mysql_password로 전환해야 합니다.

@BeNiza가 말했듯이 보안 모델을 변경했습니다.다음 단계를 수행했는데 ubuntu 18.04의 mysql 5.7.27에서 작동합니다.

sudo apt install mysql-server

MySQL 데이터베이스 소프트웨어가 설치되었지만 구성이 아직 완료되지 않았습니다.

설치 보안을 유지하기 위해 MySQL에는 일부 안전하지 않은 기본값을 수정할지 여부를 묻는 스크립트가 포함되어 있습니다.다음을 입력하여 스크립트를 시작합니다.

sudo mysql_secure_installation

프롬프트마다 키를 눌러야 합니다.

취약한 암호를 사용하면 문제가 발생합니다.

mysql 명령어 앞에 sudo를 추가하여 비밀번호를 입력하지 않고 단순히 root으로 mysql에 로그인할 수 있습니다.

sudo mysql

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';

취약한 비밀번호를 설정하면 다음 오류가 나타납니다.

오류 1819(HY000):암호가 현재 정책 요구 사항을 충족하지 않습니다.

mysql> FLUSH PRIVILEGES;

mysql> exit

주의: 루트 MySQL 사용자를 비밀번호로 인증하도록 설정하면 이전에 사용한 sudo mysql 명령으로 MySQL에 액세스할 수 없게 됩니다. 낫다'를 .mysql -u root -p

방금 설정한 비밀번호를 입력하면 MySQL 프롬프트가 나타납니다.

편집:

「」로 할 수 .debian-sys-maint, 「」에 되어 있습니다.「 」 、 「 」 、 「 」 、 「 」 。/etc/mysql/debian.cnf


원답:

Ubuntu 20.04(MySql 8.0): 이 함수PASSWORD이제 존재하지 않습니다.따라서 올바른 방법은 다음과 같습니다.

  1. mysql을 사용하여 sudo mysql -u root

  2. 비밀번호 변경:

USE mysql;
UPDATE user set authentication_string=NULL where User='root';
FLUSH privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'My-N7w_And.5ecure-P@s5w0rd';
FLUSH privileges;
QUIT

할 수 .mysql -u root -p( 「root 」 「 php My Admin 」 ) 。

링크에 기재되어 있는 옵션만이 유효합니다.

요약하면 (웹 사이트가 다운되었을 경우) 다음과 같습니다.

MySQL을 설치하려면:

sudo apt update
sudo apt install mysql-server

다음 프롬프트에서 MySQL 루트 사용자의 비밀번호를 설정하라는 메시지가 나타납니다.이 스크립트를 실행하면 익명 사용자도 삭제하도록 요구됩니다.로컬 머신에 대한 루트 사용자 접근을 제한하고 테스트 데이터베이스를 삭제합니다.모든 질문에 Y(예)라고 대답해야 합니다.

sudo mysql_secure_installation

그리고나서

sudo mysql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;

그런 다음 종료할 수 있습니다.

exit

이제 쉽게 로그인할 수 있습니다(very_strong_password를 입력해야 합니다).

mysql -u root -p
# type the password now.

위의 옵션을 몇 시간 동안 사용해 본 결과, 이 옵션만이 유효했습니다.

은 mySQ를 합니다.L lauth_socket 프로세스중에했을 경우 인스톨중에 선택할 수 .lagacy password

리눅스 debian 버전에서 SQL을 설치하려면 다음과 같이 하십시오.

sudo apt install mysql-server

패스워드를 알다

sudo cat /etc/mysql/debian.cnf

지금 로그인

mysql -u debian-sys-maint -p

debian.cnf

사용 가능한 사용자 레코드를 표시하는 방법:

USE mysql
SELECT User, Host, plugin FROM mysql.user;

이제 새 사용자를 생성할 수 있습니다.다음 명령을 사용합니다.

use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;

특정 mysql 사용자에 대한 인가를 나열하려면 다음과 같이 하십시오.

SHOW GRANTS FOR 'username'@'localhost';

특정 mysql 사용자에 대한 모든 허가를 취소하는 방법

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';

사용자 계정 목록에서 특정 사용자를 삭제/삭제하려면

DROP USER 'username'@'localhost';

추가 명령어:

$ man 1 mysql

root 비밀번호를 재설정하지 말고 새 사용자를 만들고 권한을 부여하십시오.이것이 베스트 프랙티스입니다.

Ubuntu 20.04 에서는, 디폴트의 MariaDB 10.3 패키지를 사용하는 경우는, 다음의 순서에 따릅니다(이 스레드로부터의 이전의 회답은 제외).

  1. mysql」)로합니다.sudo mysql -u root
  2. 패스워드를 갱신합니다.
USE mysql;
UPDATE user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
UPDATE user set plugin="mysql_native_password" where User='root';
FLUSH privileges;
QUIT
  1. sudo service mysql restart

후, 패스워드 「로 로컬의 mysql에 할 수 .mysql -u root -p

  1. 먼저 mysql을 중지해야 합니다.
  2. 명령어를 합니다.sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. 나서 입력해 주세요.mysql -u root이렇게 해봐, 나는 이 방법으로 내 문제를 해결했어.

또 다른 볼거리는/var/lib. "을 가진를 볼 수 mysql을 사용합니다.

user   group 
mysql  mysql

루트 패스워드에 관한 문제를 해결하기 위해 다음과 같이 했습니다.

실행 후

sudo apt-get purge mysql*
sudo rm -rf /etc/mysql

my_username put your name 대신 다음도 실행했습니다.

cd /var/lib
sudo chown --from=mysql <my_username> mysql* -R
sudo rm -rf mysql*

그 후:

sudo apt-get install mysql-server

새로운 루트 패스워드를 선택하도록 요구되었습니다.도움이 되었으면 좋겠다

  • sudo mysql -u root -p를 사용하지 할 수 sudo mysql.
  • 콘솔로 정상적으로 이행하는 경우는, 다음의 순서를 실행합니다.

루트 사용자를 드롭합니다.

DROP USER 'root'@'localhost';

다시 만듭니다.

CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';

허가를 내주다.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

FLUSH PRIVILEGES;

mysql 서비스를 재시작합니다.

service mysql restart 

그래도 콘솔에 들어갈 수 없는 경우 mysql을 다시 설치해야 합니다.

sudo apt-get remove --purge mysql-server mysql-client mysql-common -y

sudo apt-get autoremove -y

sudo apt-get autoclean

sudo rm -rf /etc/mysql

서버의 모든 MySQL 파일을 삭제합니다.

sudo find / -iname 'mysql*' -exec rm -rf {} \;

mysql을 설치합니다.

sudo apt update
sudo apt install mysql-server

인스톨을 실시합니다.

sudo mysql_secure_installation
  • 나도 이 문제가 생겼을 때 그랬는데 도움이 됐으면 좋겠어!

이것은 Ubuntu 20.04에서 mysql 8과 함께 작동했습니다.이상한 해시는 네이티브 PASSWORD() 함수가 mysql 8에서 삭제되었기 때문입니다(또는 그 이전).

UPDATE mysql.user SET 
 plugin = 'mysql_native_password',
 Host = '%',
 authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('insert password here'))))) 
WHERE User = 'root';
FLUSH PRIVILEGES;

새로 설치된 mysql에 대한 신뢰도를 얻은 것은 다음과 같습니다.

sudo cat /etc/mysql/debian.cnf

워크벤치와 연결을 시도해보니 워크벤치를 설치하는 방법이 성공했습니다.

sudo apt-get install mysql-workbench

「 「 」를 만 하면 .sudo dpkg-reconfigure mysql-server-5.7

한 은, 인스톨 한 버전을 할 수 .dpkg --get-selections | grep mysql-server

이전 버전에서는 루트 패스워드를 공백으로 둘 수 있었지만, 새로운 버전에서는 루트 패스워드는 설치 시 admin(메인) 사용자 로그인 패스워드가 됩니다.

을 mysql로 apt install mysql.
.sudo mysql.

설치의 를 mysql로 합니다.root됩니다./var/log/mysqld.log 솔루션을변수에서 할 수 mysql은 mysql을 사용합니다.

mysql_pass=$(sudo grep -oP "temporary password is generated for root@localhost: \K(.*)" /var/log/mysqld.log)

mysql -uroot -p"$mysql_pass" < somescript.sql

MySQL 8.0.15(아마 이보다 이전)에서는 PASSWORD() 함수가 더 이상 작동하지 않으므로 다음을 수행해야 합니다.

먼저 MySQL을 중지했는지 확인합니다('시스템 기본 설정' > 'MySQL'로 이동하여 MySQL을 중지합니다.

특권 바이패스를 사용하여 서버를 세이프 모드로 실행합니다.

sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;

그리고나서

mysql -u root
ALTER USER 'root'@'lo`enter code here`calhost' IDENTIFIED WITH caching_sha2_password BY 
'yourpasswd';

마지막으로 MySQL을 다시 시작합니다.

언급URL : https://stackoverflow.com/questions/42421585/default-password-of-mysql-in-ubuntu-server-16-04

반응형