Khắc Phục Lỗi Thường Gặp Và Mẹo Sử Dụng MySQL Shell Hiệu Quả

Giới thiệu

Multi-node MySQL là giải pháp tiên tiến giúp nâng cao khả năng mở rộng và tăng cường hiệu suất cho các hệ thống cơ sở dữ liệu. Bằng cách phân tán dữ liệu và xử lý trên nhiều nút (node), Multi-node MySQL không chỉ giảm tải cho một máy chủ mà còn đảm bảo tính toàn vẹn và tính sẵn sàng cao hơn. Đây là một công nghệ quan trọng đối với các doanh nghiệp cần xử lý lượng lớn dữ liệu trong thời gian thực mà vẫn đảm bảo tính ổn định của hệ thống.

Về chi tiết các bạn có thể tham khảo tại trang chủ của MySQL & MariaDB :

https://dev.mysql.com/doc/mysql-cluster-excerpt/8.0/en/mysql-cluster-general-info.html

https://mariadb.com/kb/en/galera-cluster

Phần 8: Khắc Phục Lỗi Thường Gặp Và Mẹo Sử Dụng MySQL Shell Hiệu Quả

Trong quá trình sử dụng MySQL Shell, người dùng thường gặp phải một số lỗi phổ biến. Bài viết này sẽ cung cấp các mẹo hữu ích và giải pháp khắc phục nhanh chóng, giúp bạn làm chủ MySQL Shell hiệu quả hơn.

Lỗi Libreadline7

Trong một số trường hợp ( ubuntu 20.04 ) gặp trình trạng install mysql-shell sẽ dẫn đến lỗi thiếu thư viện libreadline7. Để tránh trường hợp xảy ra lỗi thì đây sẽ là giải pháp đơn giản để khắc phục

sudo nano /etc/apt/sources.list

Add to bottom:

deb http://cz.archive.ubuntu.com/ubuntu bionic main

Update repository:

sudo apt update

Install Libreadline7:

 apt install libreadline7 -y

Cluster error

Không remove hoặc delete table vì super_read_only=on

Turn off group_replication:

STOP GROUP_REPLICATION;

Turn off super_read_only:

SET GLOBAL read_only = OFF;

Delete, remove table, database:

Turn on super_read_only:

SET GLOBAL read_only = ON;

Turn on group_replication:

START GROUP_REPLICATION;

Gặp vấn đề với các table MyISAM

Do MySQL InnoDB Cluster chỉ hoạt động với table type innodb nên ta cần convert toàn bộ table MyISAM về InnoDB

List toàn bộ table myISAM ( Thực hiện trên host khác chạy độc lập), có 2 cách:

Cách 1:

    mysql -u root -p

    SET @DATABASE_NAME = 'name_of_your_db';

    SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
    FROM    information_schema.tables AS tb
    WHERE   table_schema = @DATABASE_NAME
    AND     `ENGINE` = 'MyISAM'
    AND     `TABLE_TYPE` = 'BASE TABLE'
    ORDER BY table_name DESC;

Tuy nhiên cách trên sẽ gặp lỗi những table, field date formart. Cách 2 sẽ xử lý triệt để

Cách 2:

List toàn bộ table MyISAM

    SELECT table_name FROM INFORMATION_SCHEMA.TABLES
    WHERE engine = 'MyISAM' 

Convert toàn bộ sang InnoDB với options ignore lỗi formart

    SET SQL_MODE='ALLOW_INVALID_DATES';

    ALTER TABLE <Table> ENGINE=InnoDB;

Sau đó convert table và import vào hệ thống innodb Cluster

    mysql -u root -h localhost -P 6446 -p 
    create table database character set utf8 collate utf8_bin;
    create user 'database'@'%' identified by 'password';
    Grant all privileges on database.* to 'database'@'%';
    use database;
    source <path-to-database>

Bằng cách nắm vững những mẹo khắc phục lỗi trong MySQL Shell, bạn có thể giải quyết vấn đề nhanh chóng và duy trì hiệu suất làm việc ổn định. Hãy lưu lại những mẹo này để tối ưu hóa trải nghiệm của bạn.

Tham khảo các bài viết trước

I am gaining experience and developing my skills in the field of information technology. My focus areas include basic network administration, troubleshooting, and supporting IT infrastructure. I am keen on learning and growing in various aspects of IT, from system setup and maintenance to exploring new technologies and methodologies.

Post Comment