Khóa mysql để chèn

Chào các bạn,

Ở bài viết này mình sẽ hướng dẫn mọi người cài đặt và cấu hình MySQL InnoDB Cluster trên Ubuntu 20. 04.

Bài này mình sẽ thao tác trên mysql 8. 0 nên cần cài đặt mysql 8. 0

nội dung

Cài đặt mysql-server 8. 0
apt update
apt install mysql-server -y
snap install mysql-shell # mysql-shell dùng để cấu hình cluster
Trỏ file hosts
  • Cụm dự kiến ​​bao nhiêu nút thì liệt kê tên máy và IP, điền vào tệp máy chủ của nút để có thể phân tích từng nút, định danh các nút trong cụm
  • Ví dụ bài này mình dùng 3 nút
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
Cho phép truy cập từ xa đến mysql-server
  • Trên Ubuntu default mysql-server listen port 3306 on local chứ không public

Khóa mysql để chèn

  • Để cấp quyền truy cập từ xa đến mysql-server đã sửa thì cấu hình file
vi /etc/mysql/mysql.conf.d/mysqld.cnf # hoặc /etc/my.cnf, tùy os

# Sửa dòng: bind-address = 127.0.0.1 thành:
bind-address = 0.0.0.0
default_authentication_plugin=mysql_native_password
systemctl restart mysql
Chuẩn bị trước khi tạo Cụm
  • Các bước bên dưới thực thi trên cả 3 nút. db1, db2, db3

Create 1 user to use for cluster

CREATE USER 'clusteradmin'@'%' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'clusteradmin' WITH GRANT OPTION;
reset master;
flush privileges;
  • Ở trên, nếu không muốn phân quyền đầy đủ cho user “clusteradmin” mà chỉ muốn phân quyền cần thiết cho việc sử dụng cluster thì phân quyền như sau
GRANT BACKUP_ADMIN, CLONE_ADMIN, CREATE USER, EXECUTE, FILE, PERSIST_RO_VARIABLES_ADMIN, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, REPLICATION_APPLIER, SELECT, SHUTDOWN, SUPER, SYSTEM_VARIABLES_ADMIN ON *.* TO 'clusteradmin'@'%' WITH GRANT OPTION;
GRANT DELETE, INSERT, UPDATE ON mysql.* TO 'clusteradmin'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata.* TO 'clusteradmin'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_bkp.* TO 'clusteradmin'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_previous.* TO 'clusteradmin'@'%' WITH GRANT OPTION;

Chỉnh sửa cấu hình trước khi tạo cụm

  • Truy cập mysql-shell
mysqlsh
  • Do mỗi phiên bản có cấu trúc nhập lệnh khác nhau nên vị trí này nên kiểm tra xem phiên bản mysql đang sử dụng có cách nhập lệnh như thế nào
mysql-shell>\\help

Khóa mysql để chèn

  • Như hình trên thì phiên bản mysql hiện tại khi nhập lệnh theo kiểu. dba. check_instance_configuration. Có phiên bản khác thì gõ dba. checkInstanceConfiguration, nên cần kiểm tra trước khi kẻo nhập sai lệnh
  • Kiểm tra cấu hình
________số 8
  • Editing config
mysql-shell> dba.configure_instance('clusteradmin@db1');
Please provide the password for 'clusteradmin@db1': ***********
Configuring local MySQL instance listening at port 3306 for use in an InnoDB cluster...

This instance reports its own address as db1:3306
Clients and other cluster members will communicate with it through this address by default. If this is not correct, the report_host MySQL system variable should be changed.

applierWorkerThreads will be set to the default value of 4.

NOTE: Some configuration options need to be fixed:
+----------------------------------------+---------------+----------------+--------------------------------------------------+
| Variable                               | Current Value | Required Value | Note                                             |
+----------------------------------------+---------------+----------------+--------------------------------------------------+
| binlog_transaction_dependency_tracking | COMMIT_ORDER  | WRITESET       | Update the server variable                       |
| enforce_gtid_consistency               | OFF           | ON             | Update read-only variable and restart the server |
| gtid_mode                              | OFF           | ON             | Update read-only variable and restart the server |
| server_id                              | 1             |     | Update read-only variable and restart the server |
| slave_parallel_type                    | DATABASE      | LOGICAL_CLOCK  | Update the server variable                       |
| slave_preserve_commit_order            | OFF           | ON             | Update the server variable                       |
+----------------------------------------+---------------+----------------+--------------------------------------------------+

Some variables need to be changed, but cannot be done dynamically on the server.
Do you want to perform the required configuration changes? [y/n]: y
Do you want to restart the instance after configuring it? [y/n]: y
Configuring instance...
  • kiểm tra lại
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
0 4. Tạo Cluster Innodb
  • Trên nút bất kỳ, ở đây ví dụ nút db1, vào mysql-shell
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
1
  • Lúc này sẽ thấy promt shell đã thay đổi ở trước ‘>’ để thấy kết nối thành công
  • Tạo cụm
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
2
  • View status
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
3
  • Thêm nút vào cụm
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
4
  • Kiểm tra lại cụm trạng thái
10.0.0.1 db1
10.0.0.2 db2
10.0.0.3 db3
5

Như vậy là đã hoàn thành bài hướng dẫn cài đặt và cấu hình Mysql Innodb Cluster trên Ubuntu 20. 04.
Chúc mọi người thao tác thành công.

5 / 5 ( 1 vote )

Có liên quan