GIT – Bài viết hướng dẫn các bạn cài đặt Proxy nhằm đảm bảo thời gian hoạt động cho là 99,99%

Làm thế nào để dịch vụ MYSQL thời gian hoạt động là 99,99% ? Câu trả lời :

– Cluster all mysql server với nhau

– Cân bằng tải và chuyển dự phòng giữa mỗi cụm với nhau

– Cho họ chạy trên đương network dư thừa.

Những gì tôi cần nhất là một loadbalancer và tự động chuyển đổi dự phòng trước mặt họ. Chúng ta có thể sử dụng rất nhiều đảo ngược-proxy cung cấp ra có Heartbeat như HAProxy , và những người khác, nhưng ở đây tôi sẽ sử dụng MySQL Proxy . Tại sao? Bởi vì nó đòi hỏi chỉ có 3 bước để làm cho nó chạy! 

Kiến trúc mà tôi sẽ thực hiện như sau:

Các biến như sau:

OS: 6 64bit
Server IP: 192.168.0.88

1. Tải MySQL Proxy tại http://dev.mysql.com/downloads/mysql-proxy/ . Tôi sẽ tải ” Red Hat & Oracle Linux5 (x86, 64-bit), nén TAR Lưu Trữ phiên bản. Tôi sẽ chạy các proxy MySQL dưới /usr/local thư mục như sau:

$ cd /usr/local
$ wget http://mysql.oss.eznetsols.org/Downloads/MySQL-Proxy/mysql-proxy-0.8.2-linux-rhel5-x86-64bit.tar.gz
$ tar -xzf mysql-proxy-0.8.2-linux-rhel5-x86-64bit.tar.gz
$ mv mysql-proxy-0.8.2-linux-rhel5-x86-64bit mysql-proxy

2. Mở MySQL port trong  :

$ service iptables start
$ iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
$ service iptables save
$ service iptables restart

2. Cho phép bắt đầu nó! Chạy lệnh sau đây như là người chủ:

$ /usr/local/mysql-proxy/bin/mysql-proxy -P 0.0.0.0:3306 -b 192.168.0.91:3306 -b 192.168.0.92:3306 &

3. Chúng tôi chỉ cần đặt ở trên lệnh (trong bước 2) tới /etc/rc.local thông qua trình soạn thảo văn bản để đảm bảo rằng nó bắt đầu tự động sau khi khởi động lại.

Để ngăn chặn các mysql-proxy dịch vụ, chỉ cần kill quá trình bằng cách chạy lệnh sau:

$ kill -9 `pidof mysql-proxy`

Đã hoàn tất! Bạn có thể thay đổi thông tin về cơ sở dữ liệu của bạn trong máy chủ web của bạn để IP mới,192.168.0.88 (máy chủ proxy mysql). Hãy thử khởi động lại MySQL DB1 và để cho máy chủ web thực hiện một yêu cầu SQL và bạn sẽ thấy truy vấn MySQL của bạn là trả lại bởi một máy chủ, MySQL DB2 .

MySQL User Privileges Explained

Nếu bạn quen thuộc với MySQL, sau đây là đặc quyền của người sử dụng trong đó có sẵn:

Dữ liệu

SELECT – Cho phép đọc dữ liệu
INSERT – Cho phép chèn và thay thế dữ liệu
UPDATE– Cho phép thay đổi dữ liệu
DELETE – Cho phép xóa dữ liệu
FILE – Cho phép nhập dữ liệu và xuất khẩu dữ liệu vào tập tin

Cấu trúc

CREATE – Cho phép tạo ra các cơ sở dữ liệu mới và các bảng
ALTER – Cho phép thay đổi cấu trúc của bảng hiện tại
INDEX – Cho phép tạo và thả các chỉ số
DROP – Cho phép thả cơ sở dữ liệu và bảng biểu
CREATE TEMPORARY TABLES– Cho phép tạo ra các bảng tạm thời
SHOW VIEW– Cho phép thực hiện Show CREATE XEM truy vấn
CREATE ROUTINE – Cho phép tạo thói quen lưu trữ
ALTER ROUTINE – Cho phép thay đổi và thả thói quen lưu trữ
EXECUTE – Cho phép thực hiện các thói quen lưu trữ
CREATE VIEW – Cho phép tạo ra các quan điểm mới
EVENT – Cho phép thiết lập các sự kiện cho sự kiện lên lịch
TRIGGER – Cho phép tạo và thả gây nên

Quản trị

GRANT – Cho phép thêm người sử dụng và đặc quyền mà không cần tải lại các bảng đặc quyền
SUPER – Cho phép kết nối, ngay cả khi đã đạt đến số lượng tối đa các kết nối cần thiết cho hầu hết các hoạt động hành chính như thiết lập các biến toàn cầu hoặc giết chết chủ đề cho người dùng khác
PROCESS – Cho phép quá trình xem cho tất cả người dùng
RELOAD – Cho phép tải lại cài đặt máy chủ và xả bộ nhớ cache của máy chủ
SHUTDOWN – Cho phép tắt máy chủ MySQL
SHOW DATABASES – Cho phép truy cập vào danh sách đầy đủ các cơ sở dữ liệu
LOCK TABLES – Cho phép khóa bảng cho thread hiện hành
REFERENCES – Không sử dụng
REPLICATION CLIENT– Cho phép người sử dụng để hỏi nơi những người slaves/masters
REPLICATION SLAVE – cần thiết cho slaves  nhân rộng
CREATE USER – Cho phép tạo, xóa và đổi tên tài khoản người dùng

Duplicate Cơ sở dữ liệu MySQL

Cách dễ nhất để sao chép cơ sở dữ liệu MySQL là chỉ cần sử dụng lệnh mysqldump. Dựa trên các biến sau đây:

OS: CentOS 6.0 64bit
MySQL root password: q1w2e3!@#
Database name: grand_shopper
Duplicate database name:  grand_shopper_dev
New database user: dev_user
Password: D3eVVbf7

Thứ nhất, kể từ khi tôi chỉ muốn sao chép và nhân bản cơ sở dữ liệu bên trong cùng một máy chủ, tôi cần phải tạo ra cơ sở dữ liệu:

$ mysql -u root -p'q1w2e3!@#' -e "create database grand_shopper_dev"

Và sử dụng lệnh sau đây để sao chép nội dung cơ sở dữ liệu từ grand_shopper tới grand_shopper_dev:

$ mysqldump -u root -p'q1w2e3!@#' grand_shopper | mysql -u root -p'q1w2e3!@#' grand_shopper_dev

Định dạng: mysqldump [user] [password] [source database] | mysql [user] [password] [destination database]

Bây giờ tạo MySQL người sử dụng để kết hợp với cơ sở dữ liệu mới. Truy cập máy chủ MySQL bằng cách sử dụng lệnh:

$ mysql -u root -p'q1w2e3!@#'

Và chạy câu lệnh SQL sau:

mysql> GRANT USAGE ON grand_shopper_dev.* TO dev_user@localhost IDENTIFIED BY 'D3eVVbf7';
mysql> GRANT ALL PRIVILEGES ON grand_shopper_dev.* TO dev_user@localhost ;

Hãy thử truy cập vào cơ sở dữ liệu mới với người dùng mới:

$ mysql -h localhost -u dev_user -p'D3eVVbf7'

Tham gia thảo luận bài viết tại forum : http://forum.gocit.vn/threads/cai-dat-mysql-proxy.228/

Print Friendly

Comments

comments

Bài viết liên quan