programing

--skip-grant-tables로 MySQL을 시작하는 방법

procenter 2022. 12. 29. 21:41
반응형

--skip-grant-tables로 MySQL을 시작하는 방법

루트 사용자를 데이터베이스에서 차단했습니다.모든 권한을 루트 사용자에게 돌려줘야 합니다.비밀번호가 있고 MySQL에 로그인할 수 있습니다.그러나 루트 사용자에게 모든 권한이 있는 것은 아닙니다.

이 질문의 제목과 같은 문제가 있었습니다.다른 사람이 이 질문을 검색하여 Windows에서 MySql을 'skip-grant-tables' 모드로 시작하려고 하면 다음과 같습니다.

관리자 도구, 서비스를 통해 MySQL 서비스를 중지합니다.

my.ini 컨피규레이션파일을 변경합니다(디폴트 패스를 상정하고 있습니다).

C:\Program Files\MySQL\MySQL Server 5.5\my.ini

또는 MySQL 버전 > = 5.6의 경우

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 

SERVER 섹션의 [mysqld] 아래에 다음 행을 추가합니다.

skip-grant-tables

할 수 있도록

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
[mysqld]

skip-grant-tables

서비스를 다시 시작하면 암호 없이 데이터베이스에 로그인할 수 있습니다.

MySQL에서 루트 사용자를 다시 제어하는 방법.

위험: 위험한 조작

  • 세션 ssh를 시작합니다(가능한 경우 루트 사용).
  • ★★my.cnf를 사용하여 파일을 작성합니다.

    sudo vi /etc/my.cnf
    
  • mysqld 블록에 행을 추가합니다.*

    skip-grant-tables
    
  • 저장하고 종료합니다.

  • MySQL 서비스를 재시작합니다.

    service mysql restart
    
  • 서비스 상태를 확인합니다.

    service mysql status
    
  • mysql에 접속합니다.

    mysql
    
  • 메인 데이터베이스 사용.

    use mysql;
    
  • 사용자 루트 비밀번호를 재정의합니다.

    UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root'; 
    
  • my.cnf 파일을 편집합니다.

    sudo vi /etc/my.cnf
    
  • 선을 지웁니다.

    skip-grant-tables
    
  • 저장하고 종료합니다.

  • MySQL 서비스를 재시작합니다.

    service mysqld restart
    
  • 서비스 상태를 확인합니다.

    service mysql status
    
  • 데이터베이스에 접속합니다.

    mysql -u root -p
    
  • 메시지가 나타나면 새 암호를 입력합니다.

이 작업은 매우 위험하며, 모든 사용자가 사용자 및 비밀번호 없이 제한 없이 모든 데이터베이스에 연결할 수 있습니다.이것은 신중하게 사용해야 하며 위험을 피하기 위해 신속하게 되돌려야 합니다.

많은 것을 시도해 본 결과, 저는 이렇게 되었습니다.

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword'; 

그러면 우선 sudo를 사용하여 패스워드 없이 루트로 로그인 할 수 있습니다.그럼 루트의 비밀번호만 업데이트하면 돼

후, 저는 그, 는, 나, 기, 기, 기, aftermysqld:

sudo service mysql restart

★★★★★★★★★★★★★★★★.newpasswordin ! in !

Linux 시스템에서는 다음 작업을 수행할 수 있습니다(다른 OS에서도 비슷해야 합니다).

mysql 프로세스가 실행 중인지 확인합니다.

sudo service mysql status

실행 중인 경우 프로세스를 중지합니다(모든 mysql 도구를 닫으십시오).

sudo service mysql stop

정지하는 데 문제가 있는 경우 다음을 수행합니다.

:ps aux | grep mysqld종료합니다.kill -9 process_id

이제 skip grant를 사용하여 안전 모드에서 mysql을 시작합니다.

sudo mysqld_safe --skip-grant-tables &

WAMP64는 10개의 WAMP64입니다.★★★★★★를 했다.my.cnf ★★★★★★★★★★★★★★★★★」my.ini.를 my.iniC:\wamp64\bin\mariadb\mariadb10.2.14.

동료의 지시에 따릅니다.

  1. Wampserver에서 빠른 시작 메뉴를 열고 '모든 서비스 중지'를 선택.
  2. ★★my.ini 에디터에서 된 " " "[mysqld]
  3. 이 추가되었습니다.'skip-grant-tables'[mysqld] 내) 섹션(예: ", ")
  4. 파일을 저장하고 편집기를 열어 둡니다.
  5. Wampserver "Restart Services" (재시작 서비스).skip-grant-tables 표시
  6. Wampserver 메뉴에서 MySQL을 선택하여 프롬프트를 엽니다.
  7. 비밀번호 입력이 요구되었습니다.입력만 눌러주세요.
  8. 를 .ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
  9. 작업이 성공했음을 보고해야 합니다(해당 테이블은 없습니다).
  10. 서서 my.ini "" " " "'skip-grant-tables',, " " "
  11. [ WampServer ]메뉴에서 [Restart Service]를 한 번 더 선택합니다.

이제 새 비밀번호를 사용하여 입력할 수 있습니다.여기 있는 모든 답변들 덕분입니다.

5하여 mysql 5.6에 C:\Program Files\MySQL\MySQL Server 5.6\my.ini:

은 에접으로 .C:\ProgramData\MySQL\MySQL Server 5.6\my.ini.

해서 더 돼요.skip-grant-tables이치노

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
# server_type=3
[mysqld]
skip-grant-tables

주의: 에서 작업을 완료한 후에는 파일을 복원해야 합니다.

에 주의를 사용합니다.mysqld --skip-grant-tables

에서 경우Apple MacBook OSX'어,어,어,어,어,어,어,어,어,어,어,어,어,어,어,어,어.

  1. MySQL 서버를 중지합니다(이미 실행 중인 경우).
  2. 파일 MySQL 을 찾습니다.my.cnf로 되어 있습니다./Applications/XAMPP/xamppfiles/etc 수 경우 만 하면 찾을 수 없는 경우 검색만 하면 됩니다.)
  3. .my.cnf모든 텍스트 편집기에 파일을 저장합니다.
  4. "skip-grant-tables"따옴표 의 [mysqld]파일을 저장합니다.
  5. 이제 MySQL 서버를 시작합니다.이제 MySQL 서버를 시작합니다.부 로 작 with it' start?skip-grant-tables선택.선택.

지금 하고 싶은 대로 해!!

PS: Please remove PS: 삭제해 주세요.skip-grant-tables부에서my.cnf파일에는 다른 모든 작업을 수행할 수 있는 파일에는 액세스할 수 없는 파일을 항상 액세스할 수 있습니다.모든 작업을 완료하면 액세스 권한 없이 항상 ELASELASE MySQL 서버는 항상 실행됩니다.

명령 프롬프트에서 mysql 데이터베이스를 시작하는 동안 사용자 테이블 확인을 건너뛰려면 콘솔에서 다음 명령을 실행하십시오.

mysqld -skip-grant-tables

my.ini 파일을 편집하고 skip-grant-tables를 추가한 후 mysql 서버를 재시작합니다.

[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
skip-grant-tables
# Change here for bind listening
# bind-address="127.0.0.1" 
# bind-address = ::1 

이것이 윈도 박스일 경우 가장 간단한 방법은 서버를 정지하고 mysql Configuration파일에 skip-module-module을 추가한 후 서버를 재시작하는 것입니다.

권한 문제를 해결한 후 위의 내용을 반복하되 skip-skip-skip-skip-skip 옵션을 제거합니다.

send에 하여 "mysql send"를 전송합니다.SHOW VARIABLES LIKE '%config%'반환되는 행 중 하나가 컨피규레이션파일의 위치를 나타냅니다.

Ubuntu 20.4에서는 이렇게 합니다.이건 나한테 효과가 있었어.
에 가다/etc/mysql/mysql.conf.d/
단말기에 쓸 수 있습니다.
cd /etc/mysql/mysql.conf.d/,
그런 다음 이름이 지정된 파일을 편집해야 합니다.mysqld.cnf.
제 PC에서는 그 파일이 읽기 전용 파일이었기 때문에 먼저 권한을 변경해야 했습니다.
나는 썼다sudo chmod +rw mysqld.cnf터미널에 있습니다.
그 후, 나는 타이핑으로 파일을 편집했다.sudo gedit mysqld.cnf터미널에 있습니다.
이 파일에서는 [mysqld]아래에 [mysqld]가 새 줄에 skip-grant-tables를 추가하는 것을 볼 수 있습니다.이렇게 됩니다.

[mysqld]
skip-grant-tables

mysql 서비스를 다시 시작합니다.sudo service mysql restart단말기로.
서버가 실행되고 있지 않은 경우는, 기입해 주세요.sudo service mysql start단말기로.
여기서 또 하나 언급할 가치가 있는 것은
나는 또한 거의 똑같은 방법으로 고친 또 다른 문제가 있었다.
서버가 포트 3306에서 수신을 하지 않았습니다.
그래서 포트 = 3306도 추가해야 했습니다.mysqld.cnf파일.
이제 나는

[mysqld]
skip-grant-tables
port = 3306

mysqld.cnf 파일로 이동합니다.

질문이 오래된 것 같습니다만, 제 설정이 도움이 될 수도 있습니다.스크립트에서 사용하는 설정은 다음과 같습니다.

sed -i 's/^#skip-grant-tables.*/skip-grant-tables/g' /etc/my.cnf

service mysql restart

mysql -e "UPDATE mysql.user SET authentication_string='' WHERE user='root';"

sed -i 's/^skip-grant-tables.*/#skip-grant-tables/g' /etc/my.cnf

service mysql 재시작

언급URL : https://stackoverflow.com/questions/1708409/how-to-start-mysql-with-skip-grant-tables

반응형