Sau khi cài đặt, tiến trình chỉnh sửa file đã chỉnh sửa mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
4 trong đường dẫn mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
5 (Lưu ý là các OS khác như CenOS thì đường dẫn có thể khác nhé). ) Sử dụng bất kỳ trình soạn thảo nào trên linux mà bạn thích để thao tác, ở đây mình dùng mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
6. Sau khi mở tệp lên, tiến trình chỉnh sửa 2 dòng như sau- Nhận xét hoặc xóa dòng
mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
7, khen ngợi bằng cách thêm dấu # vào phía trước. - Thực hiện tương tự trên cả 2 máy chủ MySQL nhé. Mục đích của công việc này là để người dùng đăng nhập cục bộ được. Chuẩn bị cho việc test thôi, nếu ai không bị ảnh hưởng thì bỏ qua nhé - Bỏ bình luận dòng
mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
8 và lần lượt cho ID giá trị mà mình mong muốn trên mỗi máy chủ MySQL. Ở đây mình cho ID lần lượt là 1 và 2 tương thích với 2 máy mysql-1 và mysql-2. Mục đích của bước này chỉ dùng để kiểm tra. Ai có cách test khác thì cứ dùng nhé, ko nhất thiết phải làm theo mình đâu ^^
Sau khi chỉnh sửa thì khởi động lại MySQL nhé. mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
9Tiếp theo là tiến trình tạo Người dùng để kết nối với HAproxy. Trên mỗi cơ sở dữ liệu nút cần tạo 2 người dùng. 1 use for HAproxy check status and 1 use connect sử dụng. Tên người dùng và mật khẩu nên được tạo giống nhau ở cả 2 máy chủ vì trên thực tế sử dụng, cơ sở dữ liệu 2 nút này sẽ đồng bộ với nhau Người dùng thứ nhất mysql > Inser into mysql.user (Host,User,ssl_cipher,x509_issuer,x509_subject) values ('IP_HAproxy','USER','abc','abc','abc');
Lưu ý. trường mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
0, các bạn điền IP của HAproxy vào nhé,còn người dùng thì thích điền gì thì điền. Ví dụ. mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
1Vì lý do chả hiểu sao mình tạo user với 2 trường mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
2 thì nó lại trả về kết quả kêu 3 thằngmysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
3 kia không được null. Thế là mình gán luôn giá trị cho 3 thằng đó. Cao nhân nào biết chỗ này tại sao thì comment hướng dẫn mình với nghen . Người dùng thứ hai Tạo và gắn đầy đủ quyền luôn mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Lưu ý Các trường mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
4 ,mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
5 và mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
6 các bạn điền tự động nhé. Ví dụ. mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
7 Sau khi tạo xong thì chạy mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
8 cho Mysql update nhéCác lần làm tương tự trên cả 2 máy MySQL nhé. Sau khi chuẩn bị xong, các bạn có thể kiểm tra kết quả của các bước trên như sau Xem người dùng đã tạo mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
Xem server_ID đã gán mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
Cấu hình HAproxyCài đặt HAproxy. mysql > GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP_HAproxy' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
9 Khởi động HAproxy. mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
0 Cấu hình. mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
1 Nội dung file config as afterglobal
log 127.0.0.1 local0 notice
user haproxy
group haproxy
maxconn 256
daemon
defaults
log global
retries 2
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
listen mysql-cluster
bind 172.17.3.102:3306
mode tcp
option mysql-check user haproxy_checkstatus
balance roundrobin
server mysql-1 172.17.3.103:3306 check
server mysql-2 172.17.3.104:3306 check
Các bạn cần lưu ý phần khai báo này nhé listen mysql-cluster
bind 172.17.3.102:3306
mode tcp
option mysql-check user haproxy_checkstatus
Khai báo cho HAproxy mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
2 ( cụm máy chủ cơ sở dữ liệu) trên ip mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
3 của cổng HAproxy mặc định của MySQL là mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
4 - Khai báo này giúp chúng tôi có thể truy cập vào máy chủ MySQL thông qua HAproxy Tùy chọn mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
5 Hỗ trợ chúng tôi theo dõi . Với MySQL, HAproxy có hỗ trợ tùy chọn mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
6 với thông báo người dùng tương ứng được tạo ở trên. Các bạn có thể tham khảo thêm các mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
5 của HAproxy tạiTiếp theo là báo cân bằng tải cho máy chủ MySQL
balance roundrobin
server sql1 172.17.3.103:3306 check
server sql2 172.17.3.104:3306 check
Bài kiểm traSau khi đã hoàn thành các bước trên. The process you process as after. sử dụng một máy cài đặt khác mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
8 và kết nối với cơ sở dữ liệu cụm thông qua HAproxyhungdhm@hungdhm-Inspiron:~$ mysql -h 172.17.3.102 -u super -p
Kết nối thành công, tiến hành kiểm tra xem đang kết nối vào Node data nào nhé mysql-1@ubuntu:~$ sudo apt-get install mysql
0Đang kết nối vào mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| super |
| haproxy_checkstatus|
| debian-sys-maint |
| mysql.sys |
| root |
+------------------+
9 với ID khi chưa gán là 1. Giờ thoát ra và kết nối lại và kiểm tra để thấy sự khác biệt |