Lpad mysql

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');
9

Tiế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; 
1

Vì 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ằng
mysql > 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
Lpad mysql
.

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 HAproxy

Cà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 after

global
        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ại

Tiế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 tra

Sau 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 HAproxy

hungdhm@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