MySQL 5.7의 기본 루트 패스워드는 무엇입니까?
다른 이전 MySQL 버전과 마찬가지로 루트 ID와 빈/비밀번호가 있는 신규 설치 후 MySQL 데이터베이스에 로그인할 수 없음
mysql을 재설치하거나 컴보하여 사용하라는 답변이 많이 있습니다.
mysqld_safe --skip-grant-tables
및/또는
UPDATE mysql.user SET Password=PASSWORD('password')
그리고/또는 다른 것...
...아무것도 통하지 않았다.
Ubuntu 18.04에 대해 위에서 설명한 내용은 다음과 같습니다.
이 문제에 대한 좌절에서 절 구해준 이 답변에 특별한 공로를 걸고...
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
다음 행에 주의해 주십시오.
user = debian-sys-maint
password = blahblahblah
그 후, 다음과 같이 입력합니다.
$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from 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; // When you don't have auto-commit switched on
다음 중 하나:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
또는 다음 중 하나를 선택합니다.
// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
그 후, 다음과 같이 입력합니다.
mysql> FLUSH PRIVILEGES;
mysql> COMMIT; // When you don't have auto-commit switched on
mysql> EXIT
$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!
fresh on linux에서 MySQL-community-server 5.7을 설치한 후 /var/log/mysqld.log에서 임시 비밀번호를 검색하여 루트로 로그인해야 합니다.
grep 'temporary password' /var/log/mysqld.log- 실행합니다.
mysql_secure_installation를 변경하다
참조: http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
MySQL 5.7은 보안 모델을 변경했습니다. 이제 MySQL 루트 로그인에 sudo가 필요합니다.
가장 심플하고 안전한 솔루션은 새로운 사용자를 생성하여 필요한 권한을 부여하는 것입니다.
1. mysql에 접속하다
sudo mysql --user=root mysql
2. phpMyAdmin 사용자를 만듭니다.
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
레퍼런스 - https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7
MySQL 서버 5.7은 새로운 Linux Mint 19에 이미 설치되어 있습니다.
MySQL은 root 패스워드? '어느 정도, 하다' 입니다.
에서는, 「」를 합니다.auth_socket이치노
동일한 사용자 이름으로 Linux 시스템에 로그인한 경우 비밀번호 없이 로그인할 수 있습니다. 루트 MySQL 로 user sudo를 사용할 수 .
sudo mysql --user=root
루트 패스워드를 변경하려면 어떻게 해야 할까요?진행 상황을 설명하기 위해 다음과 같은 모든 권한을 가진 새 사용자 "me"를 만들었습니다.
mysql> CREATE USER 'me'@'localhost' IDENTIFIED BY 'my_new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
"me"와 "root" 비교:
mysql> SELECT user, plugin, HEX(authentication_string) FROM mysql.user WHERE user = 'me' or user = 'root';
+------+-----------------------+----------------------------------------------------------------------------+
| user | plugin | HEX(authentication_string) |
+------+-----------------------+----------------------------------------------------------------------------+
| root | auth_socket | |
| me | mysql_native_password | 2A393846353030304545453239394634323734333139354241344642413245373537313... |
+------+-----------------------+----------------------------------------------------------------------------+
할 수 .auth_socket은 변경할 수 없습니다.SET PASSWORD하여 " " " "가"가mysql_secure_installation…
이하고 MySQL == > MySQL을 root다음 중 하나:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';
좋은 설명입니다.
mysql 또는 percona unattended를 설치하고 싶은 경우(내 경우와 마찬가지로) 다음 스크립트를 사용할 수 있습니다.
# first part opens mysql log
# second part greps lines with temporary password
# third part picks last line (most recent one)
# last part removes all the line except the password
# the result goes into password variable
password=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*root@localhost: //p')
# setting new password, you can use $1 and run this script as a file and pass the argument through the script
newPassword="wh@teverYouLikE"
# resetting temporary password
mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';"
MySQL 5.7 이상에서는 새로 설치한 후 기본 임시 암호를 생성합니다.
을 먼저 하려면 MySQL에 ./var/log/mysqld.log따라서 다음 프로세스를 수행합니다.
grep 'temporary password' /var/log/mysqld.logmysql_secure_installation
두 번째 명령어는 MySQL 비밀번호 변경 및 임시 데이터베이스 삭제, 루트 사용자에 대한 원격 접근 허용 또는 금지, 익명 사용자 삭제 등 기타 특정 변경에 필요합니다.
개발자가 루트 사용자를 설정하지 않도록 설계된 것 같습니다. 더 나은 솔루션은 다음과 같습니다.
sudo mysql -u root
그런 다음 일반 사용자를 생성하고 암호를 설정한 다음 해당 사용자를 사용하여 작업합니다.
create user 'user'@'localhost' identified by 'user1234';
grant all on your_database.* to 'user'@'localhost';
select host, user from mysql.user;
다음으로 접속을 시도합니다.
mysql -u user -p
쾅!
Ubuntu Server 18.04.1 및 MySQL 5.7.23에서는 이 답변 중 어느 것도 통하지 않았습니다.패스워드와 인증 플러그인을 수동으로 설정하거나 로그에서 패스워드를 찾는 등 많은 시간을 소비했지만 실패했습니다.
솔루션은 실제로 매우 간단합니다.
sudo mysql_secure_installation
요.sudo상승 이이 분명합니다 권한 상승 없이 시도하면 루트 암호를 입력해야 하는데, 이 암호는 없는 것이 분명합니다.
여러 번 시도한 후 다음 명령어(Ubuntu 및 파생 모델)를 사용하여 기본 암호를 재설정할 수 있습니다.
sudo -i
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
use mysql;
update user set authentication_string=password('YOURPASSWORD') where user='root';
update user set plugin="mysql_native_password" where User='root';
flush privileges;
quit;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
가끔 단말기에 입력해도
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysqld가 존재하지 않는다는 오류가 발생했습니다.따라서 종료하고 동일한 명령을 다시 입력합니다.
그리고 마지막 명령어는
sudo /etc/init.d/mysql start
가끔은 안 먹히기도 해컴퓨터를 재기동한 후에만.
Linux Mint 19 (Ubuntu 18.04)를 컴퓨터에 설치했습니다.repo(sudo apt install mysql-server)에서 MySQL 5.7을 설치했는데 설치 중에 root 비밀번호를 입력하라는 메시지가 표시되지 않았습니다.그 결과 MySQL에 로그인 할 수 없었습니다.인터넷 검색으로 검색해 본 결과, 위의 답변도 포함해 다양한 답변을 시도해 보았습니다.(이름에 mysql이 있는 모든 dpkgs를 삭제)를 제거하고 기본 Linux Mint 저장소에서 다시 설치했습니다.NONE은 동작하지 않습니다.
몇 시간 동안 비생산적인 작업을 한 후 공식 페이지에서 MySQL을 다시 설치하기로 했습니다.MySQL 다운로드 페이지(https://dev.mysql.com/downloads/repo/apt)에서 apt repo를 열고 오른쪽 하단의 Download 버튼을 클릭했습니다.
다음으로 dpkg으로 실행합니다.
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
설치 설정에서 설치할 MySQL 버전을 선택합니다.기본 옵션은 8.0이지만 5.7로 변경했습니다.[확인]을 클릭하여 종료합니다.그러면 소프트웨어 소스에 새로운 MySQL repo가 생성됩니다.
레포 업데이트:
sudo apt update
마지막으로 MySQL을 설치합니다.
sudo apt install mysql-server
루트 패스워드를 입력하도록 요구받았습니다.같은 경험을 가진 다른 사람들에게 도움이 되길 바랍니다.
Ubuntu 20.04(MySql 8.0 포함): 다음과 같이 비밀번호를 설정할 수 있습니다.
mysql에 로그인하다
sudo mysql -u root비밀번호 변경:
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을 사용하여 phpMyAdmin으로 전송) 및 선택한 비밀번호.
P,S:
사용자 로그인도 가능합니다.debian-sys-maint비밀번호는 파일에 기재되어 있습니다./etc/mysql/debian.cnf
(스크립트에서) 비인터랙티브모드로 실행하려면:
systemctl start mysqld
MYSQL_ROOT_TMP_PSW=$(grep 'temporary password' $logpath/mysqld.log |sed "s|.*: ||")
## POPULATE SCHEMAS WITH ROOT USER
/usr/bin/mysql --connect-expired-password -u root -p${MYSQL_ROOT_TMP_PSW} < "$mysql_init_script"
여기 init 스크립트의 헤드가 있습니다.
SET GLOBAL validate_password_policy=LOW;
FLUSH privileges;
SET PASSWORD = PASSWORD('MYSQL_ROOT_PSW');
FLUSH privileges;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH privileges;
...
그런 다음 서비스를 재시작합니다.systemctl restart mysqld
제 경우 데이터 디렉토리는 자동으로 초기화됩니다.--initialize-insecure선택.그렇게/var/log/mysql/error.log에는 임시 패스워드가 포함되어 있지 않습니다만, 다음과 같습니다.
[경고] root@localhost가 빈 비밀번호로 생성되었습니다! --initialize-insecure 옵션을 해제하십시오.
효과가 있었던 것은, 다음과 같습니다.
shell> mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
세부사항:MySQL 5.7 레퍼런스 매뉴얼> 2.10.4 초기 MySQL 계정 보호
저도 같은 문제를 겪고 있었습니다.이 문제를 해결하기 위해 할 수 있는 유일한 방법은 다음과 같은 방법을 택할 수 있는 그대로입니다.
drop user admin@localhost;
flush privileges;
create user admin@localhost identified by 'admins_password'
이것에 의해, 유저명을 재작성해, 유저명의 패스워드를 입력할 수 있게 되었습니다.
언급URL : https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7
'source' 카테고리의 다른 글
| MariaDB는 중첩된 트랜잭션을 지원합니까? (0) | 2022.11.21 |
|---|---|
| 어레이의 Marge/flatening (0) | 2022.11.12 |
| MySQL 데이터베이스를 SQL Server로 가져오기 (0) | 2022.11.12 |
| Vue JS Vuetify $emit이 처음 작동하지 않습니다. (0) | 2022.11.12 |
| 플레인 JavaScript에서 "hasClass" 함수는 무엇입니까? (0) | 2022.11.12 |