./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8
make 
make install
cd /usr/local/mysql/bin
./mysql_install_db
useradd -M mysql
chown -R mysql.mysql /usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe &
해주시면 끝입니다. mysql 접속은
/usr/local/mysql/bin/mysql -u root -p
my.cnf 파일에 포트를 설정해 놓으면 다중으로 mysql 을 띄울수 있다.
(물론.. 설치도 쓰는만큼해야겠지만!)
한 시스템에서 두개의 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 database user privileges(권한설정)
Global level
GRANT ALL ON *.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';
Database level
GRANT ALL ON mydb.* TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost';
Table level
GRANT ALL ON mydb.mytbl TO 'someuser'@'somehost';
GRANT SELECT, INSERT ON mydb.mytbl TO 'someuser'@'somehost';
Column level
GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';
Routine level
GRANT CREATE ROUTINE ON mydb.* TO 'someuser'@'somehost';
GRANT EXECUTE ON PROCEDURE mydb.myproc TO 'someuser'@'somehost';
SET PASSWORD statement. For example: 
GRANT ... IDENTIFIED BY 'mypass';
GRANT ...
IDENTIFIED BY PASSWORD '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4';
---------------------------sql replication ..
* 환경 MySQL 4.1x 이상
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
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
Slave Server
> vi /etc/my.cnf
server-id=2
master-host=210.116.xxx.xxx
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';
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) 
 
No comments:
Post a Comment