MySQL 5.7의 기본 루트 암호는 무엇입니까?
루트 ID로 새로 설치 한 후 MySQL 데이터베이스에 로그인 할 수없고 다른 이전 MySQL 버전과 같이 암호가 비어 없습니다.
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을 다시 설치하거나 콤보를 사용하신다고 대답이 너무.
mysqld_safe --skip-grant-tables
및 / 또는
UPDATE mysql.user SET Password=PASSWORD('password')
그리고 / 또는 다른 것 ...
... 그것 중 어느 것도 나를 위해 일하지 않다
다음은 우분투 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!
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 또는 percona를 무인으로 설치하려는 경우 (예 : ansible) 다음 펼쳐서 사용할 수 있습니다.
# 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은 새 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 root
사용자를 암호를 사용하도록 되돌리려면 :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';
자세한 내용은 MySQL 매뉴얼에서 .
내 컴퓨터에 Linux Mint 19 (Ubuntu 18.04 기반)를 설치했습니다. 리포지토리 ( sudo apt install mysql-server ) 에서 MySQL 5.7을 설치 했고 놀랍게도 설치 중에 루트 암호 를 입력하라는 메시지가 표시되지 않았습니다 . 그 결과 MySQL에 로그인 할 수 없었습니다. 나는 여기 저기 검색하고 위에서 받아 들여진 대답을 포함하여 인터넷에서 찾은 다양한 대답을 시도했습니다. 나는 제거 ( 이름에 mysql이 있는 모든 dpkgs 제거 )하고 기본 Linux Mint 리포지토리에서 다시 설치했습니다. 작동하지 않습니다.
몇 시간의 비생산적인 작업 끝에 공식 페이지에서 MySQL을 다시 설치하기로 결정했습니다. apt repo의 MySQL 다운로드 페이지 ( https://dev.mysql.com/downloads/repo/apt )를 열고 오른쪽 하단의 다운로드 버튼을 클릭 했습니다.
다음으로 dpkg로 실행합니다.
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
설치 설정에서 설치하려는 MySQL 버전을 선택합니다. 기본 옵션은 8.0이지만 5.7로 변경했습니다. 종료하려면 확인을 클릭하십시오. 그런 다음 소프트웨어 소스에 새 MySQL 저장소가 있습니다.
저장소 업데이트 :
sudo apt update
마지막으로 MySQL을 설치합니다.
sudo apt install mysql-server
이제 루트 암호를 입력 하라는 메시지가 표시되었습니다 ! 이 같은 경험을 가진 다른 사람들에게 도움이되기를 바랍니다.
이 답변 중 어느 것도 Ubuntu Server 18.04.1 및 MySQL 5.7.23에서 저에게 효과적이지 않았습니다. 비밀번호와 인증 플러그인을 수동으로 설정하고 로그에서 비밀번호를 찾는 데 많은 시간을 보냈습니다.
솔루션은 실제로 매우 쉽습니다.
sudo mysql_secure_installation
이 작업을 sudo
. 권한 상승없이 시도하면 루트 암호를 입력하라는 메시지가 표시됩니다.
개발자가 루트 사용자를 선택하지 않도록 설계된 것 같습니다. 더 나은 솔루션은 다음과 같습니다.
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
팔!
Mysql은 설치시 기본 임시 암호를 생성하므로 mysql을 먼저 사용하려면 /var/log/mysqld.log에있는 로그 파일에서 해당 암호를 가져와야합니다. 따라서 다음 프로세스를 따르십시오.
grep '임시 비밀번호'/var/log/mysqld.log
mysql_secure_installation-mysql의 비밀번호를 변경하고 임시 데이터베이스 제거, 루트 사용자에 대한 원격 액세스 허용 또는 금지, 익명 사용자 삭제 등과 같은 특정 기타 변경을 수행하는 데 필요합니다.
많은 시도 끝에 다음 명령 (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
때때로 작동하지 않습니다. 컴퓨터를 다시 시작한 후에 만.
나는 똑같은 문제를 겪고 있었고 그것을 작동시키기 위해 할 수 있었던 유일한 일은 다음 경로로 이동하는 것입니다.
drop user admin@localhost; flush privileges; create user admin@localhost identified by 'admins_password'
이를 통해 사용자 이름 을 다시 만들고 사용자 이름에 대한 암호 를 입력 할 수있었습니다.
제 경우에는 데이터 디렉토리가 --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 계정 보안
참고 URL : https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7
'ProgramingTip' 카테고리의 다른 글
아이콘에는 이미 광택 효과가 포함되어 있습니다. (0) | 2020.12.13 |
---|---|
Fiddler가 브라우저에서 트래픽을 작동하지 않음 (0) | 2020.12.13 |
iOS Swift에서 NSDate를 다중로 변환 (0) | 2020.12.13 |
모바일을 모스 부호로 변환 (0) | 2020.12.13 |
널을 테스트하는 간단한 방법으로 변환하기 전에 (0) | 2020.12.13 |