반응형

1.mysql root 패스워드 설정 및 패스워드 변경 방법

드 설정 및 변경

초기 mysql root 패스워드 설정하기

mysql> use  mysql;

mysql> update  user  set  password=password('123456') where user='root';

mysql> flush  privileges;

마지막 라인을 실행시켜야 적용이 된다..

 

설정 후 잘 되는지 테스트해보자

# mysql -u root -p  엔터

# Enter password: ******

※패스워드 변경하는 방법은 패스워드 설정하는 방법과 같다.

 

 

2.[mysql] 계정 생성/ DB권한부여 / 패스워드 변경/ 삭제

리눅스/데이터베이스 2010년 05월 25일 23시 43분

1. GRANT 명령어를 사용하여 계정생성 및 DB 권한 주기

mysql> GRANT ALL PRIVILEGES ON *.* to mk@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

// 모든 DB 접속권한 부여 및 root 권한 부여, mk라는 유저는 localhost 에서만 접속가능 (내부접속)

mysql> flush privileges; //권한로드

: 모든곳(외부)에서 접속가능하게 하려면 mk@localhost 부분을 mk@'%' 로 바꿔주면 됨

: mk계정이 특정한 곳에서만 접속 가능하게 하려면 mk@localhost 부분을 mk@'ip주소' 로 바꿔주면 됨

: mk계정이 특정 DB에 접속을 하며(보이며) 해당 DB에'만' root 권한(모든 명령어) 을 줄때는 *.* 부분을 DB명.* 로바꿔주면 됨

: mk계정에 특정 명령어(권한)만 사용하게 할때는 ALL PRIVILEGES 부분을 바꿔주면 됨

ex) GRANT select, insert, delete, update ~~.... (select, insert, delete, update 만 실행 할 수 있음)

 

* GRANT 명령어가 아닌 mysql DB의 user테이블과 db 테이블을 이용하는 방법도 있지만 번거로우므로 패스..

 

2. 계정 패스워드 변경

root 권한으로 mysql 접속

mysql> show databases; //모든 db 목록 출력

mysql> use mysql; //mysql 이라는 db를 사용

mysql> show tables; // mysql DB의 모든 table 목록을 출력

mysql> show columns from user; // user 테이블의 구조를 살펴본다. desc user 로 해도 됨

mysql> UPDATE user SET password = password('변경패스워드') WHERE user = '계정';

// 매치된 row 가 있는지, 변경된게 몇개인지에 대한 결과가 나온다. 모든 결과가 0이라면 제대로 적용되지 않은것. 특정 계정만 바꾸려고 했으니 당연히 1이라는 결과값이 나와야 한다.

/* Result Example

 Query OK, 1 row affected (0.02 sec)

 일치하는 Rows : 1개 변경됨 : 1개 경고 : 0개

*/

mysql> flush privileges;

 

// mysql DB 선택후 바로 UPDATE 명령어를 내리면 된다. 여타 명령어는 DB를 확인하며 찾아가는 과정임..

 

3. 계정 삭제

root 계정 접속후

mysql> use mysql;

mysql> drop user 계정명;

// 관련 DB 정보 삭제

 

 

 

3.Mysql 비밀번호 변경 방법

Mysql, 리눅스 Aug 31

2010.## 1. root 비밀번호를 분실했을 경우

 

1) 암호 초기화

# killall mysqld (데몬을 모조리 죽입니다)

# cd /usr/local/mysql (mySsql 설치된 폴더 이동)

※ mysql 데몬이 죽었기 때문에, 의외로 이거 모르시는 분이 많은데 sql 명령을 넣으려면 sql이 설치된 디렉토리로 가야합니다.

# ./bin/safe_mysqld –skip-grant &

여기까지 진행하면 root 비밀번호가 초기화됩니다. 즉 root 비밀번호가 삭제되는거죠.

 

2) 새 암호 넣기

2.1) MySQL 3.x ~ 4.01

# ./bin/mysql (mysql 실행)

mysql>use mysql  <- mysql 데이타베이스 연결

mysql>update user set password=password(‘새암호’) where user=’root’;

Query OK, 2 rows affected (0.05 sec)

Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES;    <- 끝에  ;  를 꼭 입력해야합니다.

Query OK, 0 rows affected (0.00 sec)

mysql> exit (끝내기)

 

2.2) MySQL 4.1 ~ MySQL 5.x

MySQL 4.1 이상 버전에서는 비밀번호를 해쉬알고리즘을 기반으로한 인증 프로토콜을 사용합니다.

그리고 해당 기능이 하위버전의 Client와 호환이 되지 않기에 서버를 4.1이상으로 업그레이드를 한 후에는 다음과 같은 명령어를 사용하여 인증이 가능토록 해야 합니다.

 

# ./bin/mysql (mysql 실행)

mysql>use mysql  <- mysql 데이타베이스 연결

mysql> update user set password=OLD_PASSWORD(‘새암호’) WHERE user = ‘root’;

Query OK, 2 rows affected (0.05 sec)

Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

## 2. 유저 로그인 경우 비밀번호 변경

$ mysql -u디비아이디 -p 디비이름

Enter password:

mysql>set password = password(‘새암호’);    <== 새로운 비밀번호로 저장하기

<추가설명>set password = old_password(‘새암호’);  <== 기존 비밀번호로 저장하기

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit  <== MySQL 빠져나올 때

 

 

 

4.이번에 알려드릴꺼는 MySQL 5.X버전대의 악조건 바로 패스워드입니다.

 

아시는분은 아시겠지만 MySQL 4.X버전대에서 5.X버전대로 옴겨오면서

 

패스워드방식이 바뀐걸로 압니다. 그래서 5.X버전대에서 4.x버전대를 요구하는 경우도 종종생기게되죠.

 

오류문 : Client does not support authentication protocol requested by server; consider upgrading MySQL client

이 문제를 해결할 방법은 두가지 입니다. 하나는 사용하시는 root 패스워드를 올드패스워드로 바꿔주는것이고

 

하나는 MySQL 버전을 다운그레이드하는 방법이 있습니다.

 

여기서 저는 첫번째 방법을 설명하도록 하겠사옵니다~

 

오토셋 화면에서 파일 - MySQL 콘솔창 을 클릭 해줍니다.

 

하셧다면 mysql> 이런상태로 명령프롬프트창이 뜰탠데요. 그상태에서

 

mysql>SET PASSWORD FOR 엔터

       ->'root'@'localhost' = OLD_PASSWORD('사용하시던비밀번호'); 엔터

 

이렇게 해주시면 오류없이 잘됩니다. 그리고 마무리로 mysql>FLUSH PRIVILEGES; 엔터 입력해주는 센스

 

다음으로

 

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('사용하시던비밀번호') 엔터

       -> WHERE Host = 'localhost' AND User = 'root'; 엔터

mysql> FLUSH PRIVILEGES; 엔터

 

위대로 실행합니다. ^^

마지막으로 exit 로 콘솔을 꺼주는 센수~

 

이제부터가 좀 힘들어지는데 ; ^^ 잘따라오세염 ~

MySQL을 꺼줍니다. (중요)

시작-실행-cmd 로 명령프롬프트를 실행하셔서

C:\AutoSet\Server\mysql\bin 폴더로 이동시켜줍니다.

 

----------방법1-----------

명령프롬프트를 켜시면 C:\Documents and Settings\Administrator> 이렇게 되어있으실탠데요.

C:\로 옴기시려면 C:\Documents and Settings\Administrator>cd .. 엔터

C:\Documents and Settings\>cd .. 엔터 이렇게 하시면

C:\> 이렇게 바뀝니다 . 이상태에서

C:\cd AutoSet\Server\mysql\bin 엔터 이렇게 해주시면 C:\AutoSet\Server\mysql\bin> 폴더로 잡히게 됩니다 ^^

-----------------------------

그리고 MySQL실행 옵션을 설정해서 MySQL를 실행시킵니다.

C:\AutoSet\Server\mysql\bin>mysqld-max-nt.exe --old-password 엔터

이렇게 하시면 키보드커서가

C:\AutoSet\Server\mysql\bin>mysqld-max-nt.exe --old-password

| 이렇게 깜빡이게 됩니다. 이렇게 하셧다면 성공! CMD창을 꺼주시구요.

다시 방법1대로 하셔서 C:\AutoSet\Server\mysql\bin> 이쪽폴더로 옵니다.

이제는 간단하게 mysql -uroot -p사용하시던비밀번호 엔터 하시면

아까 보셧던 콘솔창처럼 됩니다. (여기서오토셋에서콘솔창키면되지하시는데!안됩니다.저를따라오세염 ~)

 

mysql> SELECT localhost, root, 사용하시던패스워드 FROM mysql.user 엔터

       -> WHERE LENGTH(사용하시던패스워드) > 16; 엔터

이렇게 하셔서 오류가 없으시다면 성공입니다 ^^

 

이제부터 root는 올드패스워드를 사용하게됩니다. 사용하시는데에 이상은 없을꺼같구요.

5.X버전대에서는 올드패스워드를 한개만 지원하는거 같더군요.

4.X버전대에서는 무한개 가능하던데 ㅠㅠ 아무튼 이글보시구 모두들 오류없으시길 ~

.

그림설명

 

 

 

 

위의 그림과 비교해 보면서 확인한다

 

 

 

 

 

반응형

+ Recent posts