달력

06

« 2018/06 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
.. .. ..

1. 디렉토리 생성

 

2. 권한 변경

 

3. mysql 정지

 

4. 설정파일 수정

  : /etc/my.cnf & /etc/init.d/mysqld 파일의 datadir 부분 변경

 

5. mysql 시작

 

 

.
Posted by .07274.

댓글을 달아 주세요

2013.11.08 16:25

[펌] 리눅스에서 Mysql 설치 I.lib()/I.lib(Mysql)2013.11.08 16:25

.. .. ..

MySQL DBMS 를 설치할 때 제가 적용하는 내용을 공유합니다.
root 계정으로 설치 준비를 하고, mysql 계정으로 DB를 구동합니다.
일단 하단 내용들은 root계정으로 수행을 합니다. 

OS 계정 추가

다음과 같이 dba 그룹을 추가하고 그 밑에 mysql 계정을 추가합니다.

1
2
3
groupadd -g 600 dba
useradd -g 600 -u 605 mysql
passwd mysql

Linux 설정 변경

세션 Limit 를 설정합니다.

1
2
3
4
5
6
vi /etc/security/limits.conf
##하단 내용 추가
mysql            soft    nproc  8192
mysql            hard    nproc  16384
mysql            soft    nofile 8192
mysql            hard    nofile 65536

OS에서 limits.conf 파일을 읽어들이도록 설정합니다. 없으면 생성합니다.

1
2
3
vi /etc/pam.d/login
## 하단 내용 추가
session    required     pam_limits.so

/etc/profile 에 다음 내용을 추가하여 login 시 적용되도록 합니다.

1
2
3
4
5
6
7
8
9
10
vi /etc/profile
##
if [ $USER = "mysql" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

MySQL 데이터 저장 디렉토리를 생성합니다.

1
2
3
4
mkdir -p /data/mysql/mysql-data
mkdir -p /data/mysql/mysql-tmp
mkdir -p /data/mysql/mysql-iblog
mkdir -p /data/mysql/mysql-binlog

MySQL 설치 파일 다운로드

하단 실행 시 x86_64 가 있으면 64비트이고, i686 이 있으면 32비트입니다.

1
2
3
## OS 버전 확인 ##
uname -a
Linux ..중략.. EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

이제 MySQL Download 의 “Linux – Generic” 탭에서 자신의 OS에 맞는 MySQL Server 받으세요. 현재 Release되는 주 버전은 MySQL 5.5.x이나, 여기서는 MySQL 5.1.57 64비트 버전으로 설명드리겠습니다.
굴욕적이지만, 한국보다는 일본 mirror서버에서 받는 것이 빠르다는..-_-;;

1
2
3
cd /usr/local/
## 설치 파일 다운로드
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.19-linux2.6-x86_64.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/

MySQL 기본 설정

시스템에 따라 데이터 파일과 같은 일부 변수 값이 달라질 수 있으니, 자신의 시스템에 맞게 수정해서 사용하세요.

1
vi /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
# generic configuration options
port = 3306
socket = /tmp/mysql.sock

back_log = 100
max_connections = 500
max_connect_errors = 10
table_open_cache = 2048
max_allowed_packet = 16M
join_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
bulk_insert_buffer_size = 16M
thread_cache_size = 128
thread_concurrency = 16
query_cache_type = 0
default_storage_engine = innodb
thread_stack = 192K
lower_case_table_names = 1
max_heap_table_size = 128M
tmp_table_size = 128M
local_infile = 0
max_prepared_stmt_count = 256K
event_scheduler = ON
log_bin_trust_function_creators = 1
secure_auth = 1
skip_external_locking
skip_symbolic_links
#skip_name_resolve

## config server and data path
basedir = /usr/local/mysql
datadir = /data/mysql/mysql-data
tmpdir = /data/mysql/mysql-tmp
log_bin = /data/mysql/mysql-binlog/mysql-bin
relay_log = /data/mysql/mysql-binlog/mysql-relay
innodb_data_home_dir = /data/mysql/mysql-data
innodb_log_group_home_dir = /data/mysql/mysql-iblog

## config character set
##utf8
character_set_client_handshake = FALSE
character_set_server = utf8
collation_server = utf8_general_ci
init_connect = "SET collation_connection = utf8_general_ci"
init_connect = "SET NAMES utf8"

## bin log
binlog_format = row
binlog_cache_size = 4M

## Replication related settings
server_id = 1
expire_logs_days = 7
slave_net_timeout = 60
log_slave_updates
#read_only

## MyISAM Specific options
key_buffer_size = 32M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 16M
myisam_repair_threads = 1
myisam_recover = FORCE,BACKUP

# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G

innodb_data_file_path = ibdata1:1G:autoextend
innodb_file_per_table = 1
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 120
innodb_support_xa = 0
innodb_file_io_threads = 8

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no_auto_rehash

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive_timeout

[mysqld_safe]
open_files_limit = 8192

MySQL Server 설치

1
2
3
4
5
6
7
8
9
10
11
12
13
## 압축 해제
cd /usr/local
tar xzvf mysql-5.5.19-linux2.6-x86_64.tar.gz
## 관리를 위한 심볼릭 링크 생성
ln -s mysql-5.5.19-linux2.6-x86_64 mysql
## 설치 파일 권한 변경
chown -R mysql.dba /usr/local/mysql*
## 시작 스크립트 복사
cp mysql/support-files/mysql.server /etc/init.d/mysqld
## 관련 파일 권한 설정
chown mysql.dba /data/mysql/*
chown mysql.dba /etc/my.cnf
chown mysql.dba /usr/local/mysql*


여기서부터는 이제 mysql 계정으로 실행을 합니다.
관리를 위해서 몇몇 alias를 설정하는 부분입니다.^^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
su - mysql
cat >> ~/.bash_profile
## 하단 내용 입력
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin:.
export ADMIN_PWD="ROOT 패스워드"
 
alias ll="ls -al --color=auto"
alias mydba="mysql -uroot -p$ADMIN_PWD"
alias mymaster="mysql -uroot -p$ADMIN_PWD -e'show master status;'"
alias myslave="mysql -uroot -p$ADMIN_PWD -e'show slave status\G'"
alias mh="cd $MYSQL_HOME"
alias md="cd /data/mysql/mysql-data"
alias mt="cd /data/mysql/mysql-tmp"
alias mb="cd /data/mysql/mysql-binlog"
alias mi="cd /data/mysql/mysql-data"
alias dp="cd /data/mysql/mysql-data"
 
## 환경 변수 적용
. ~/.bash_profile

MySQL Server 구동

1
2
3
4
5
cd /usr/local/mysql
## 기본 데이터베이스 설치
./scripts/mysql_install_db
## MySQL 데몬 Startup
/etc/init.d/mysqld start

MySQL 보안 설정

처음 DB를 올리면 보안 면에서 취약한 부분이 있습니다.
기본적인 보안 정책을 적용하도록 합니다.
mysql root  계정 패스워드만 설정하고 나머지는 Enter만 쭉 치면 됩니다.

1
2
cd /usr/local/mysql
./bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Change the root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]
- Dropping test database...
ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist
... Failed! Not critical, keep moving...
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

이제 MySQL DB 설치가 다 끝났습니다. 참 쉽죠잉~!^^

.
Posted by .07274.

댓글을 달아 주세요

.. .. ..



MySQL 데이터베이스를 백업하거나 혹은 다른 머신 (Machine)으로 옮겨야 한다면,

다음과 같이 export할 수 있다.

mysqldump -uusername -ppassword database_name > dump.sql

테이블 (Table) 스키마 (Schema)와 데이터는 export되지만

import를 위해 계정과 데이터베이스는 다음과 같이 생성한다.

grant all privileges on database_name.* to 'username'@'localhost' identified by 'password';

create database database_name;

다음과 같이 import할 수 있다.

mysql -uusername -ppassword database_name < dump.sql

import가 완료되었음을 확인할 수 있다.


.
Posted by .07274.

댓글을 달아 주세요

.. .. ..

출처 : http://www.superuser.co.kr/home/superuserboard/view.html?id=1192&code=mysql&start=640&position=

설치시 에럭 나타날때
[qtam@localhost qtam]$ mysql -u root mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

1. -h (호스트) 적용
2. mysql killall safe_mysqld --user=mysql --skip-grant-table &
3.

MySQL 을 처음 설치한 후 아무런 변경도 하지 않는 경우에는 root 사용자의 암호가 설정되
어 있지 않습니다. 따라서 MySQL 을 처음 설치한 경우에는 다음과 같은 명령으로 MySQL
서버에 연결을 할 수 있습니다.
[wertyu@inos ~]$ mysql -u root mysql

여기서 주의할 점은 mysql 은 -u 옵션으로 사용자 명을 주지 않는 경우 시스템 계정 사용자
의 이름을 이용한다는 것입니다.
[wertyu@inos ~]$ mysql mysql
ERROR 1045: Access denied for user: 'wertyu@localhost' (Using password: NO)

만약 mysql 을 사용하면서 다음과 같은 에러가 발생한다면 사용자에게 암호가 걸려 있는 것
입니다.
[wertyu@inos ~]$ mysql -uroot mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)



- mysql root 비밀번호 잊어 먹었을 때
[root@localhost local]# killall mysqld

//권한없이 접속가능하도록하는옵션입니다.
[root@localhost local]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

//mysql로 접속합니다.
[root@localhost local]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 4.0.20-log

//비밀번호를 변경합니다.
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use mysql
Database changed
mysql> update user set password=password('비밀번호') where user='root';
Query OK, 2 rows affected (0.02 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> exit
Bye

//mysql을 중지시키고 다시 스타트합니다.
[root@localhost local]# killall mysqld
[root@localhost local]# /usr/local/mysql/bin/mysqld_safe &

 

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://c.christianlouboutinukh.com/ BlogIcon cheap christian louboutin 2013.04.10 18:48 신고  댓글주소  수정/삭제  댓글쓰기

    마침내 점심 시간이 되어서 아내가 집에 돌아와 보니,남편은 보이지 않고,

  2. Favicon of http://7785.freshbrewedcodes.com/longchampuk.php BlogIcon longchamp 2013.07.20 22:04 신고  댓글주소  수정/삭제  댓글쓰기

    태양이 바다에 미광을 비추면,나는 너를 생각한다.

2012.01.31 19:08

MY SQL 계정 생성 I.lib()/I.lib(Mysql)2012.01.31 19:08

.. .. .. MY SQL 5.X 버젼 계정 생성

1.생성
INSERT INTO user VALUES('localhost', 'egov', PASSWORD('egov123'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','Y','Y', '', '', '', '', 0, 0, 0, 0);

2. 권한
INSERT INTO db
        VALUES('localhost', 'egov', 'egov', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','Y');

3. DB 생성
create database egov  DEFAULT CHARACTER SET utf8 ;;

4. 설정 재로딩
flush privileges; .
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://8342.hiphopweekly.com/html/lv_p2.html BlogIcon louis vuitton outlet 2013.07.22 05:09 신고  댓글주소  수정/삭제  댓글쓰기

    창밖을 봐 바람에 나뭇가지가 살며시 흔들리면 네가 사랑하는 사람이 널 사랑하고 있는거야.

.. .. ..
이름 바꾸기
mysql> ALTER TABLE tablename RENAME bbs;


컬럼 속성 수정
mysql> ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성

컬럼 이름 바꾸기
sysql> ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;

CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.

컬럼 추가
mysql> ALTER TABLE bbs ADD name varchar(10);

ALTER TABLE tablename ADD 컬럼이름 컬럼속성

컬럼 삭제
mysql> ALTER TABLE bbs DROP colname;

  컬럼 속성 변경
mysql> alter table 테이블명 change column 기존컬럼 바꿀컬럼 데이터형 추가하고자 하는 속성;

특정 컬럼 뒤에 새로운 컬럼 추가
mysql> ALTER TABLE bbs ADD newcol varchar(10) AFTER num;

num 컬럼 뒤에 newcol 컬럼 추가.

기존 컬럼을 지우고 맨 앞에 컬럼 추가
mysql> ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST;

맨 앞에 추가하려면 FIRST를 사용한다.

PRIMARY KEY 속성 삭제
mysql> ALTER TABLE test DROP PRIMARY KEY;


이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때
PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다.
mysql> ALTER TABLE test MODIFY a CHAR(1) NOT NULL;


테이블의 내용 전체 삭제
mysql> TRUNCATE TABLE tablename;

트랜잭션에 의해 복구될 수 없다.

[펌] : http://kwon37xi.egloos.com/1635464
.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://ois.pandoraouted.com BlogIcon pandora jewelry 2013.04.20 04:57 신고  댓글주소  수정/삭제  댓글쓰기

    전통발효식품으로 쌀 위주인 한국

.. .. .. Mysql 은 참... 구동과 종료 방법이 다양하다.. 많은 착오끝에 찾아낸 내 서 버 의 구동과 종료 방법이다.

1. root로 로그인
2. /usr/local/mysql/bin 으로 이동 ( Mysql이 설치된 폴더 + bin)

시작 (start) 명령어
./mysqld_safe &


종료(shutdown) 명령어
./mysqladmin -u root -p shutdown

RedHat 에서 설치하였습니다.

당신의 댓글이 나를 더 분발하게 합니다~! .
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://6443.regionalsgateway.com BlogIcon ghd 2013.07.19 12:35 신고  댓글주소  수정/삭제  댓글쓰기

    태양이 바다에 미광을 비추면,나는 너를 생각한다.

2011.07.18 10:07

innoDB 와 MyISAM 차이 I.lib()/I.lib(Mysql)2011.07.18 10:07

.. .. ..
20-2_sunmysql.png

최근 개발을 하면서 처음 듣게된 개념이 있다.
바로 MySQL DB의 "스토리지엔진"이라는 개념과 innoDB, MyISAM 개념이다.

간단하게 말하면
스토리지엔진은 DB에서 데이터를 어떠한 방식으로 저장하고 접근할 것인지에 대한 기능을 제공한다.
스토리지엔진의 특성에 따라 데이터 접근이 얼마나 빠른지, 얼마나 안정적인지, 트랜잭션 등의 기능을 제공하는지 등의 차이점이 발생한다

MySQL 스토리지엔진에는 몇가지 타입이 있는데
1. MyISAM
MySQL의 기본 스토리지 엔지으로 데이터 저장에 실제적인 제한이 없고 매우 효율적으로 저장한다. Full-Text 인덱스를 지원하며 특정 인덱스에 대해 메모리 캐쉬를 지원한다. 트랜잭션은 미지원/ 테이블 레벨의 락을 지원 잦은 변경및 삭제에는 좋은 성능이 나오지 못하나 데드락 발생은 예방
2. InnoDB
ACID 트랜잭션을 지원하며, MyISAM보다 데이터 저장비율이 낮고, 데이터 로드 속도가 느리다. 특정 데이터와 인덱스에 대해서 메모리 캐쉬를 지원하며 외부티를 지원한다. 데이터 압축이 불가능하고 자동 에러 복구 기능이 있다. 테이블 레벨이 아닌 ROW 레벨의 락을 지원한다.
3. Cluster (NDB)
트랜잭션을 지원하고 모든 데이터와 인덱스가 메모리에 존재하여 매우 빠른 데이터 로드 속도를 자랑하며 PK 사용시 최상의 속도를 나타낸다.
4. Archive
MySQL 5.0부터 새롭게 도입된 엔진으로 자동적으로 데이터 압축을 지원하며 다른 엔진에 비해 80% 저장공간 절약 효과를 자랑한다. 그리고 가장 빠른 데이터 로드 속도 또한 자랑하지만, INSERT와 SELECT만이 가능하다.
5. Federated
MySQL 5.0부터 새롭게 도입된 엔진으로 물리적 데이터베이스에 대한 논리적 데이터베이스를 생성하여 원격 데이터를 컨트롤 할 수 있다. 실행속도는 네트워크 요소에 따라 좌우되면 테이블 정의를 통한 SSL 보안 처리를 한다. 분산 데이터베이스 환경에 사용한다

대표적인 엔진타입으로는 위에 설명한 MyISAM 방식과 InnoDB 방식이 있다.
이 두가지를 예를 들어 설명하자면,
MyISAM 방식은 속도가 빠르고, 트랜잭션을 지원하지 않으며,
InnoDB 방식은 속도가 느린대신 트랜젝션을 지원한다

위 두가지 방식의 구체적인 내용 및 장단점을 보고 싶으면.... .
Posted by .07274.

댓글을 달아 주세요

.. .. .. 이런 그지같은 에러 같으니라고....

mysql을 실행 하면

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

메시지가 뜨면서 실행이 안되는 경우에는 다음과 같은 순서로 처리합니다.

# /usr/bin/safe_mysqld --user=root &

(Mysql 4.X 이상이면 mysqld_safe --user=root &)

(보통은 /usr/local/mysql/bin 이다.)

재부팅 하면 날라가므로 /etc/rc.local 에서 추가 시켜 줍니다.

그리고 다시 재시도 하면 아래와 같은 메시지가 나오게 됩니다.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

이부분은 mysql root 패스워드를 초기화 해주면 됩니다.

# killall mysqld

# mysqld_safe --skip-grant &

# mysql

- mysql> use mysql

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

- mysql> flush privileges

ps. flush privileges <-- (mysql reload)

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://6140.tourisme67.fr/nikefreerun.php BlogIcon nike 2013.07.24 23:44 신고  댓글주소  수정/삭제  댓글쓰기

    슬퍼서 우는거 아니야..바람이 불어서 그래..눈이 셔서..

2011.06.30 15:14

mysql 패스워드 변경 I.lib()/I.lib(Mysql)2011.06.30 15:14

.. .. ..
1. mysql -u root -p

2. use mysql

3. update user set password=password('12345') where user='root';

4.flush privileges;      <-- 적용

[주의]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
그대는 mysql 을 shutdown 하거나 reload 하면 된다.
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown
하면 패스워드를 묻는데 이때 입력하면 설정한 mysql이 적용이된다.
# /usr/local/mysql/bin/mysqladmin -u root -p reload;
------------------------------------------------------------------------------------

# mysql -u root -p [Enter] // root 패스워드로 로그인
Enter password: ******

※ Mysql 서버에 root 패스워드가 설정되면 이제 부터는 mysql 서버에 접속하기 위해서는
위와 같이 -u 뒤에 root입력하고 -p 옵션을 사용하여 패스워드를 사용한다는 것을 명시해야 한다.
그리고 엔터를 치면 root 패스워드를 입력받기 위해 커서가 멈춘다.
(mysql 명령어만 입력하고 엔터를 치면 패스워드를 묻지 앟고 바로 mysql> 프롬프트가 나온 옛 시절을 생각해 보면 금방 차이를 느낄수 있음)

2. 루트 비번 변경
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
mysql> flush privileges;

3. root 패스워드를 분실한 경우(응급조치)

mysql을 오랫동안 사용하지 않았을 경우에 간혹 root패스워드가 기억나질않아서 당황할 때가 있습니다. 시스템관리자라면 시스템의 root나 MySQL의 root의 암호를 잊어 버렸을 때를 대비해서 패스워드를 새로 설정하는 방법을 반드시 숙지하고 있어야 할 것입니다.

① 실행중인 msyql 종료

# ps -ef | grep mysqld
root 9567 1 0 Mar16 ? 00:00:00 sh ./mysqld_safe
root 9576 9567 0 Mar16 ? 00:00:00 /usr/local/mysql/libexec/mysqld
root 9578 9576 0 Mar16 ? 00:00:00 /usr/local/mysql/libexec/mysqld
root 9579 9578 0 Mar16 ? 00:00:00 /usr/local/mysql/libexec/mysqld

# killall mysqld

② grant-table 미사용모드로 mysql시작(권한 테이블을 사용하지 않는 옵션으로 데몬 실행)

# ./safe_mysqld --skip-grant-tables &
[1] 12084
# Starting mysqld daemon with databases from /usr/local/mysql/data
#

# ./mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.22.24
Type 'help' for help.
mysql>

※ mysqld_safe 명령어는 mysql 데몬을 실행시킨다.

③ update문으로 root사용자 패스워드 갱신

mysql> update user set password=password('123') where user = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> \q
Bye

④ 실행중인 mysql 다시 종료(권한 테이블을 사용하지 않는 데몬을 종료)

# ps -ef | grep mysqld
root 12084 11558 0 20:10 pts/2 00:00:00 sh ./mysqld_safe --skip-grant-ta
root 12090 12084 0 20:10 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld
root 12092 12090 0 20:10 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld
root 12093 12092 0 20:10 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld
#
# killall mysqld
mysqld daemon ended
[1]+ Done ./mysqld_safe --skip-grant-tables
#

⑤ Mysql 데몬 재 실행 후 갱신된 패스워드로 로그인

# ./safe_mysqld &
[1] 12102
# Starting mysqld daemon with databases from /usr/local/mysql/data
#

# ps -ef | grep mysql
root 12102 11558 0 20:13 pts/2 00:00:00 sh ./mysqld_safe
root 12108 12102 0 20:13 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld
root 12110 12108 0 20:13 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld
root 12111 12110 0 20:13 pts/2 00:00:00 /usr/local/mysql/libexec/mysqld

# mysql -u root -p
Enter Password: ***************

.
Posted by .07274.

댓글을 달아 주세요