'mysql password 분실'에 해당되는 글 1건
- 2014.12.29
1. mysql
[문제]
mysql에 있는 samadal 관련 모든 정보 삭제 후 아래와 같이 설정
DB : dbtest
user : usertest
table : tbtest
fields : num int(10), name char(10), addr char(20), phone int(20)
values : 3개 아무거나
# service mysqld start
mysqld (을)를 시작 중: [ OK ]
# chkconfig mysqld on
# mysql -u root -p mysql
db 삭제
mysql> drop database dbsamadal;
mysql의 db 테이블 확인하여 해당 정보 삭제
mysql> desc db;
mysql> select host, db, user from db;
mysql> delete from db where user='usersamadal';
mysql의 user 테이블 확인하여 해당 정보 삭제
mysql> desc user;
mysql> select host, user, password from user;
mysql> delete from user where user='usersamadal';
db 생성 및 비어있는 테이블 확인
mysql> create database dbtest;
mysql> use dbtest;
mysql> show tables;
Empty set (0.00 sec)
mysql db 의 user 테이블에 usertest 라는 사용자 생성
mysql> use mysql;
mysql> desc user;
mysql> select host, user, password from user;
mysql> insert into user(host, user, password) values('localhost', 'usertest', password('samadal'));
생성한 사용자를 아까 만든 db와 연동
mysql> desc db;
mysql> select host, db, user from db;
mysql> insert into db values('localhost', 'dbtest', 'usertest',
-> 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y');
mysql> Bye
# /etc/rc.d/init.d/mysqld restart
usertest 사용자를 이용하여 dbtest db 편집
# mysql -u usertest -p dbtest
조건에 맞는 테이블 생성
mysql> show tables;
mysql> create table tbtest(num int(10), name char(10), addr char(20), phone int(20));
mysql> show tables;
테이블 상세 정보 확인
mysql> desc tbtest;
mysql> select num, name, addr, phone from tbtest;
values 입력
mysql> insert into tbtest(num, name, addr, phone) values(1, 'user1', 'seoul', '010-1111-1111');
mysql> insert into tbtest(num, name, addr, phone) values(2, 'user2', 'busan', '010-2222-2222');
mysql> insert into tbtest(num, name, addr, phone) values(3, 'user3', 'incheon', '010-3333-3333');
mysql> insert into tbtest(num, name, addr, phone) values(4, 'user4', 'daegu', '010-4444-4444');
mysql> select * from tbtest;
+------+---------+----------+---------+
| num | name | addr | phone |
+------+---------+----------+---------+
| 1 | user1 | seoul | 10 |
| 2 | user2 | busan | 10 |
| 3 | user3 | incheon | 10 |
| 4 | user4 | daegu | 10 |
+------+--------+-----------+---------+
=> phone 값의 values가 이상하다..?! phone의 type을 잘못 지정했기 때문에 이런 문제 발생.
[수정]
num => id char(10)
phone => char (20)
변경 후 전화번호가 정상적으로 뜨도록 설정
이름 및 타입 변경
mysql> alter table tbtest change num id char(10);
mysql> alter table tbtest modify phone char(20);
새로 phone 값 update
mysql> update tbtest set phone='010-1111-1111' where id='1';
mysql> update tbtest set phone='010-2222-2222' where id='2';
mysql> update tbtest set phone='010-3333-3333' where id='3';
mysql> update tbtest set phone='010-4444-4444' where id='4';
mysql> desc tbtest;
+---------+-----------+--------+------+----------+--------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------+--------+-----+-----------+--------+
| id | char(10) | YES | | NULL | |
| name | char(10) | YES | | NULL | |
| add r | char(20) | YES | | NULL | |
| phone | char(20) | YES | | NULL | |
+---------+-----------+--------+-----+-----------+--------+
mysql> select * from tbtest;
+----+---------+-----------+---------------------+
| id | name | addr | phone |
+----+---------+-----------+---------------------+
| 1 | user1 | seoul | 010-1111-1111 |
| 2 | user2 | busan | 010-2222-2222 |
| 3 | user3 | incheon | 010-3333-3333 |
| 4 | user4 | daegu | 010-4444-4444 |
+----+---------+-----------+---------------------+
=> int형은 오른쪽 정렬이지만 char 형은 왼쪽 정렬인 것도 확인할 수 있다.
[문제]
mysql에 있는 test 관련 정보 삭제 후 아래와 같이 설정
DB : dbtiger
user : usertiger
table : tbtiger
fields : id char(10), name char(10), addr char(50), tel char(20)
values : 3개 아무거나
삭제
# mysql -u root -p mysql
mysql> show databases;
mysql> drop database dbtest;
mysql> show tables;
mysql> desc user;
mysql> delete from user where user='usertest';
mysql> desc db;
mysql> delete from db where db='dbtest';
생성
mysql> create database dbtiger;
mysql> desc user;
mysql> insert into user(host, user, password) values('localhost', 'usertiger', password('samadal'));
mysql> select host, user, password from user;
mysql> desc db;
mysql> insert into db values('localhost', 'dbtiger', 'usertiger',
-> 'y','y','y','y','y','y','y','y','y','y',
-> 'y','y','y','y','y','y','y','y','y');
mysql> Bye
# service mysqld restart
# mysql -u usertiger -p dbtiger
mysql> create table tbtiger(id char(10), name char(10), addr char(50), tel char(20));
mysql> desc tbtiger;
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-1111-1111');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-2222-2222');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-3333-3333');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-4444-4444');
mysql> select * from tbtiger;
[Tip]
db까지 만든 후 계정생성 및 연동까지 한번에 하는 명령어. (데몬 재시작 필요 없음)
db table user host pw
grant all privileges on dbtiger.* to 'usertiger'@'localhost' identified by 'samadal' with grant option;
(db 부분도 * 해버리면 관리자 만드는 것과 똑같은 효과.)
[Tip]
Table 이름 변경
ex)
mysql> rename table tbtiger to tbsilti
[Tip]
데몬 재실행 없이 재실행 효과 주는 명령어. (관리자 계정 이용)
mysql> flush privileges;
[Tip]
mysql 접속시 오류 중 111이 뜰 경우 /var/lib/mysql/mysql.sock 파일 삭제 후 데몬 재실행
만약 오류가 뜨는데 mysql.sock 파일이 없는 경우는 시스템 재부팅 후 연결
2. mysql password 분실 시 대처방법
# netstat -lntup | grep mysqld
# /etc/rc.d/init.d/mysqld stop
안전모드 들어가기 위해 종료되었는지 확인
# netstat -lntup | grep mysqld
# mysqld_safe --skip-grant-tables &
이제 패스워드 없이 접속 된다.
# mysql
mysql> use mysql;
mysql> select host, user, password from user;
mysql> update user set password='' where user='usertiger';
mysql> Bye
# /etc/rc.d/init.d/mysqld restart
-정리
1) mysql 데몬 정지
2) mysqld_safe --skip-grant-tables &
3) mysql
4) 수정
5) mysql 데몬 활성
/usr/bin/mysqld_safe 에 있는 듯한데 관리자만 실행 가능하도록 권한 설정 해야 보안이 더 완벽할듯
3. myphpadmin
mysql 을 그래픽 환경에서 관리할 수 있는 툴.
현재 우리가 사용하고 있는 mysql 버전에 맞게 phpmyadmin 다운로드.
[실습]
phpMyAdmin-4.0.10.7-all-languages 중에 linux에서 압축 풀수 있는 것 1개 다운 받아 업로드 후
internet expoler에서 linux_ip/myadmin 접속 시 페이지 뜰 수 있도록 설정
다운로드 하여 리눅스로 업로드
압축 해제
# tar xvfz phpMyAdmin-4.0.10.7-all-languages.tar.gz
# mv ./phpMyAdmin-4.0.10.7-all-languages/ /myadmin
# vi /etc/httpd/conf/httpd.conf
556 Alias /myadmin "/myadmin"
# /etc/rc.d/init.d/httpd restart
※ Alias 방식으로 해도 되지만 기존 설정되어있는 메인페이지 디렉터리 안 /myadmin 디렉터리에 압축을 풀어도 된다.
'Study > CentOS' 카테고리의 다른 글
[39] 종합문제(1)_nfs, automount, dns, Apache, mysql (0) | 2015.04.06 |
---|---|
[38] myphpadmin(2), xe (0) | 2015.04.06 |
[36] Apache_VirtualHosts, user directory, mysql(1) (0) | 2015.04.06 |
[35] 종합 중간점검, Apache_Alias (0) | 2015.04.06 |
[34] Apache (0) | 2015.04.06 |