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버전대에서는 무한개 가능하던데 ㅠㅠ 아무튼 이글보시구 모두들 오류없으시길 ~
.
그림설명
위의 그림과 비교해 보면서 확인한다
'데이터베이스' 카테고리의 다른 글
MySQL Replication (마스터-슬레이브 동기화) 설정 (0) | 2023.11.14 |
---|---|
LVM을 이용한 MySQL 스냅샷 백업 (0) | 2023.11.14 |
MySQL 외부 접근 허용하기 (0) | 2023.11.14 |
mysql 원격 접속하기 (0) | 2023.11.14 |
MySQL Replication을 이용하여 DBMS 단방향 이중화하기 (0) | 2021.11.26 |