'저장용'에 해당되는 글 58건
- 2009.03.19 mysqldump 명령어
- 2009.03.19 mysql resplication
- 2009.03.17 mysql 명령어
- 2009.03.17 mysql root password 변경.
- 2009.03.17 mysqld_safe & 두개 띄우기..
mysqldump [옵션] --databases [옵션] db명1, db명2, .... > 백업파일
mysqldump [옵션] --all-databases [옵션] > 백업파일
- 옵션
-A, --all-databases : 모든 DB를 덤프
--add-locks : 덤프 전에 lock 덤프 후에 unlock
--add-drop-table : 덤프이후에 출력물의 앞에 drop table명령 추가
나중에 복구할 때 사용키 위해서
-B, --databases : 여러 DB를 동시에 덤프 할 때 사용
-f, --force : 에러를 무시
-h, --host : 지정한 호스트의 데이터를 덤프
-t : data만 덤프
-d : 데이터를 제외하고 스키마만 덤프
-p : 사용자의 암호를 지정
-P : 포트번호 지정
-u : 사용자명 지정
'저장용' 카테고리의 다른 글
mysql [12.5.1.3. GRANT Syntax] (0) | 2009.03.20 |
---|---|
mysqldump 사용법 (0) | 2009.03.19 |
mysql resplication (0) | 2009.03.19 |
mysql 명령어 (0) | 2009.03.17 |
mysql root password 변경. (0) | 2009.03.17 |
Master Server
[root@ihelpers log]# /usr/local/mysql/bin/mysql -uroot
mysql> grant replication slave on *.* to repl@'%' identified by 'repl';
Query OK, 0 rows affected (0.00 sec)
mysql> grant reload,super on *.* to repl@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
> vi /etc/my.cnf
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| ihelpers-bin.000008 | 126 | test | |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
[root@ihelpers log] rsync -avz test 210.116.xxx.xxx::mysql
// rsync 를 사용하지 않고 mysqldump 를 사용해서 소켓간에 데이터를 이동 하자!! multi 상태에서 사용하는거니깐...
{
//master Shell > mysqldump -u root -p ‘password’ -B -S 소캣 위치 db_name > dump_file.sql
//slave shell > mysql -u root -p -S 소캣 위치 < dump_file.sql
}
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
Slave Server
> vi /etc/my.cnf
server-id=2
master-host=192.168.2.x
master-user=repl
master-password=xxx
master-port=3306
replicate-do-db=test
[smson@smson smson]$ /usr/local/mysql/bin/mysql -uroot
mysql> CHANGE MASTER TO MASTER_HOST='192.168.2.43', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='j1273k';
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status;
확인
Master
mysql> use test;
Database changed
mysql> create table a ( a int );
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| ihelpers-bin.000008 | 185 | test | |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Slave
mysql> show slave status;
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a |
+----------------+
1 row in set (0.00 sec)
Management
binary logs 파일 초기화
echo "reset master" | /usr/local/mysql/bin/mysql -uroot -pxxxx
[root@smson var]# ls -al smson-bin*
-rw-rw---- 1 mysql mysql 1073742010 Dec 26 18:30 smson-bin.000020
-rw-rw---- 1 mysql mysql 470597632 Jan 6 09:57 smson-bin.000021
-rw-rw---- 1 mysql mysql 786 Jan 6 10:05 smson-bin.000022
-rw-rw---- 1 mysql mysql 1973 Jan 6 10:10 smson-bin.000023
-rw-rw---- 1 mysql mysql 3386154 Jan 6 10:33 smson-bin.000024
-rw-rw---- 1 mysql mysql 456 Jan 6 10:22 smson-bin.index
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| smson-bin.000024 | 3386563 | | danlaysis |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> PURGE MASTER LOGS TO 'smson-bin.000020';
Query OK, 0 rows affected (0.00 sec)
'저장용' 카테고리의 다른 글
mysqldump 사용법 (0) | 2009.03.19 |
---|---|
mysqldump 명령어 (0) | 2009.03.19 |
mysql 명령어 (0) | 2009.03.17 |
mysql root password 변경. (0) | 2009.03.17 |
mysqld_safe & 두개 띄우기.. (0) | 2009.03.17 |
$ mysql -u 사용자명 -p dbname
설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.
$ mysql -u root mysql
비밀번호 변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
다음 세가지 방법으로 비밀번호를 변경 할 수 있다.
- mysqladmin이용
$ mysqladmin -u root password 새비밀번호
- update문 이용
$ mysql -u root mysql
mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;
- Set Password 이용
SET PASSWORD FOR root=password('새비밀번호');
일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.
사용자 추가/삭제
mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';
username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는
데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면
GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';
위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.
추가 : '%'를 호스트네임으로 지정해도 모든 호스트에서 접속할 수 없었다. 각 호스트별로 다 지정해야 했다.
불필요한 사용자 삭제는
mysql> DLETE FROM user WHERE user='username';
mysql> FLUSH PRIVILEGES;
데이터베이스 생성/보기
- 데이터베이스를 생성하고,
mysql> CREATE DATABASE dbname;
- 현재 존재하는 데이터베이스 목록을 보여준다.
mysql> SHOW DATABASES;
- 특정 데이타베이스를 사용하겠다고 선언한다.
mysql> USE dbname;
- 쓸모 없으면 과감히 삭제한다.
mysql> DROP DATABASE [IF EXISTS] dbname;
IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.
테이블 생성/보기
- 테이블을 생성하고,
mysql> CREATE TABLE tablename (
column_name1 INT,
column_name2 VARCHAR(15),
column_name3 INT );
- 현재 데이타베이스의 테이블 목록을 보고
mysql> SHOW TABLES;
- 테이블 구조를 살펴본다.
mysql> EXPLAIN tablesname;
혹은
mysql> DESCRIBE tablename;
- 이름을 잘못 지정했으면 이름을 변경할 수도 있다.
mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];
- 필요 없으면 삭제한다.
mysql> DROP TABLE [IF EXISTS] tablename;
현재 상태 보기
mysql> status
--------------
mysql Ver 11.18 Distrib 3.23.58, for pc-linux (i686)
Connection id: 26
Current database: study
Current user: study@localhost
Current pager: stdout
Using outfile: ''
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: euc_kr
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 9 min 59 sec
Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 Flush tables: 1
Open tables: 1 Queries per second avg: 0.021
--------------
INSERT
mysql> INSERT INTO tablename VALUES(값1, 값2, ...);
혹은
mysql> INSERT INTO tablename (col1, col2, ...) VALUES(값1, 값2, ...);
SELECT
mysql> SELECT col1, col2, ... FROM tablename;
컬럼명을 *로 하면 모든 컬럼 의미.
mysql> SELECT col1 AS '성명', col2 AS '국어점수' FROM grade;
컬럼의 이름을 바꿔서 출력.
mysql> SELECT * FROM tablename ORDER BY col1 DESC;
mysql> SELECT col1, korean + math english AS '총점' FROM tablename ORDER BY '총점' ASC;
DESC는 내림차순 ASC는 오름차순.
mysql> SELECT * FROM grade WHERE korean < 90;
조건줘서 SELECT.
mysql> SELECT * FROM grade LIMIT 10;
결과중 처음부터 10개만 가져오기
mysql> SELECT * FROM grade LIMIT 100, 10;
결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.
UPDATE
mysql> UPDATE tablename SET col1=새값 WEHER 조건
DELETE
mysql> DELETE FROM tablename WEHRE 조건
mysql에서 쿼리 결과 세로로 보기
-E 옵션을 줘서 실행한다.
$ mysql -E -u root -p mysql
mysql에서 발생한 오류나 경고 다시 보기
mysql> show errors;
mysql> show warnings;
'저장용' 카테고리의 다른 글
mysqldump 명령어 (0) | 2009.03.19 |
---|---|
mysql resplication (0) | 2009.03.19 |
mysql root password 변경. (0) | 2009.03.17 |
mysqld_safe & 두개 띄우기.. (0) | 2009.03.17 |
mysql (0) | 2009.03.17 |
update 를 사용해 변경..
[update user set passowrd=password('new-password') where user='root']
root의 암호 설정하기..
'저장용' 카테고리의 다른 글
mysql resplication (0) | 2009.03.19 |
---|---|
mysql 명령어 (0) | 2009.03.17 |
mysqld_safe & 두개 띄우기.. (0) | 2009.03.17 |
mysql (0) | 2009.03.17 |
apache (0) | 2009.03.17 |
한 시스템에서 두개의 mysql 띄우는 법...
--[ my.cnf ]--
...
중략
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306 #mysql2일때는 = 3307 (포트는 서로 다르기만 하면 됩니다)
socket = /tmp/mysql.sock1 #mysql2일때는 = /tmp/mysql.sock2
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
중략
....
-------
각각 데몬 띄우기
mysql1은 /usr/local/mysq1/bin/mysqld_safe --user=mysql &
mysql2는 /usr/local/mysq2/bin/mysqld_safe --user=mysql &
이렇게 띄우시고요
중요한건 접속하실 때
mysql1은 /usr/local/mysq1/bin/mysql --socket=/tmp/mysql.sock1 -P 3306 -u사용자 -p
mysql2는 /usr/local/mysq2/bin/mysql --socket=/tmp/mysql.sock2 -P 3307 -u사용자 -p
암턴 이렇습니다.
'저장용' 카테고리의 다른 글
mysql 명령어 (0) | 2009.03.17 |
---|---|
mysql root password 변경. (0) | 2009.03.17 |
mysql (0) | 2009.03.17 |
apache (0) | 2009.03.17 |
리눅스 에서 PHP 설치하기~ (0) | 2009.03.17 |