"Hai tài nguyên dựa trên đĩa quan trọng được quản lý bởi công cụ lưu trữ InnoDB là tệp dữ liệu không gian bảng và tệp nhật ký của nó. Nếu bạn chỉ định không có tùy chọn cấu hình InnoDB, MySQL sẽ tạo một tệp dữ liệu 10MB tự động mở rộng có tên ibdata1 và hai tệp nhật ký 5MB có tên ib_logfile0 và ib_logfile1 trong thư mục dữ liệu MySQL. Để có được hiệu suất tốt, bạn nên cung cấp rõ ràng các tham số InnoDB như được thảo luận trong các ví dụ sau. Đương nhiên, bạn nên chỉnh sửa cài đặt cho phù hợp với phần cứng và yêu cầu của mình. "
Vị trí lưu trữ MySQL / MariaDB theo mặc định trên CentOS 7 ở đâu? Đăng vào ngày 24 tháng 3 năm 2018 bởi Eric Ma In QA
Vị trí lưu trữ MySQL/MariaDB theo mặc định trên CentOS 7 ở đâu?
Trên CentOS 7 Linux, nó thường được mặc định
/var/lib/mysql
Nhưng ở đây tôi cung cấp cho bạn một cách "hacky" khác để tìm ra nó
Phương pháp là tìm ra các tệp đã mở của mysql daemon mysqld và các đường dẫn vì nó phải mở các tệp để đọc/ghi dữ liệu
Tóm lược. trong hướng dẫn này, bạn sẽ học cách gọi các thủ tục được lưu trữ của MySQL trong Python bằng cách sử dụng MySQL Connector/Python API
Trước khi chúng ta bắt đầu
Nếu bạn không quen thuộc với các thủ tục được lưu trữ của MySQL hoặc muốn xem lại nó để làm mới lại, bạn có thể làm theo hướng dẫn về thủ tục được lưu trữ của MySQL
Chúng tôi sẽ tạo hai thủ tục được lưu trữ để trình diễn trong hướng dẫn này
Quy trình được lưu trữ sau trả về tất cả sách có thông tin tác giả từ bảng
2 vàCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
3Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Code language: SQL [Structured Query Language] [sql]
USE python_mysql; DELIMITER $$ CREATE PROCEDURE find_all[] BEGIN SELECT title, isbn, CONCAT[first_name,' ',last_name] AS author FROM books INNER JOIN book_author ON book_author.book_id = books.id INNER JOIN authors ON book_author.author_id = authors.id ORDER BY title; END$$ DELIMITER ;
Thủ tục được lưu trữ
4 có câu lệnhCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
0 với mệnh đề
CALL find_all[];
Code language: SQL [Structured Query Language] [sql]
1 truy xuất tiêu đề, ISBN và tên đầy đủ của tác giả từ bảngCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
2 vàCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
3Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Gọi thủ tục lưu trữ
4, bạn sẽ nhận được tập kết quả sauCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Thủ tục được lưu trữ thứ hai có tên là
5 được sử dụng để tìm một cuốn sách theo ISBN của nó như sau.Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Code language: SQL [Structured Query Language] [sql]
DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
5 chấp nhận hai tham số. tham số đầu tiên là ISBN [tham số IN] và tham số thứ hai là tiêu đề [tham số OUT]. Ví dụ: khi bạn chuyển một ISBN cho thủ tục được lưu trữ, bạn sẽ nhận được tên sách________số 8Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Đây là đầu ra
Code language: SQL [Structured Query Language] [sql]
+-------------------------------------------------+ | @title | +-------------------------------------------------+ | Debatable Land Between This World and the Next | +-------------------------------------------------+ 1 row in set [0.00 sec]
Gọi các thủ tục được lưu trữ từ Python
Để gọi một thủ tục được lưu trữ trong Python, bạn làm theo các bước dưới đây
- Kết nối với cơ sở dữ liệu bằng cách tạo một đối tượng
7 mới
Code language: SQL [Structured Query Language] [sql]CALL find_all[];
- Khởi tạo một đối tượng
8 mới từ đối tượng
Code language: SQL [Structured Query Language] [sql]CALL find_all[];
7 bằng cách gọi phương thức
Code language: SQL [Structured Query Language] [sql]CALL find_all[];
0
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
- Gọi phương thức
1 của đối tượng
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
8. Bạn chuyển tên của thủ tục được lưu trữ làm đối số đầu tiên của phương thức
Code language: SQL [Structured Query Language] [sql]CALL find_all[];
1. Nếu thủ tục được lưu trữ yêu cầu tham số, thì bạn cần chuyển một danh sách làm đối số thứ hai cho phương thức
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
1. Trong trường hợp thủ tục lưu trữ trả về một tập kết quả, bạn có thể gọi phương thức
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
5 của đối tượng
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
8 để lấy một trình lặp danh sách và lặp lại tập kết quả này bằng cách sử dụng phương thức
Code language: SQL [Structured Query Language] [sql]CALL find_all[];
7
Code language: SQL [Structured Query Language] [sql]DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
- Đóng con trỏ và kết nối cơ sở dữ liệu như mọi khi
Ví dụ sau minh họa cách gọi thủ tục lưu sẵn
4 bằng Python và xuất tập kết quảCode language: SQL [Structured Query Language] [sql]
CALL find_all[];
1Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Ví dụ sau đây cho bạn biết cách gọi thủ tục lưu trữ
5
CALL find_all[];
Code language: SQL [Structured Query Language] [sql]
3Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
Thủ tục lưu trữ
5 yêu cầu hai tham số, do đó, chúng ta phải chuyển một danh sách [Code language: SQL [Structured Query Language] [sql]
CALL find_all[];
1 ] chứa hai phần tử. cái đầu tiên là isbn [1236400967773] và cái thứ hai là 0. Phần tử thứ hai của danh sách args [0] chỉ là phần giữ chỗ để giữ tham sốCode language: SQL [Structured Query Language] [sql]
CALL find_by_isbn['1235927658929',@title]; SELECT @title;
2Code language: SQL [Structured Query Language] [sql]
CALL find_by_isbn['1235927658929',@title]; SELECT @title;
Phương thức
1 trả về một danh sách [Code language: SQL [Structured Query Language] [sql]
DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
4 ] chứa hai phần tử. phần tử thứ hai [result_args[1]] giữ giá trị của thông sốCode language: SQL [Structured Query Language] [sql]
CALL find_by_isbn['1235927658929',@title]; SELECT @title;
2Code language: SQL [Structured Query Language] [sql]
CALL find_by_isbn['1235927658929',@title]; SELECT @title;
Trong phần hướng dẫn này, bạn đã học cách gọi thủ tục lưu sẵn trong Python bằng cách sử dụng phương thức
1 của đối tượngCode language: SQL [Structured Query Language] [sql]
DELIMITER $$ CREATE PROCEDURE find_by_isbn[ IN p_isbn VARCHAR[13], OUT p_title VARCHAR[255] ] BEGIN SELECT title INTO p_title FROM books WHERE isbn = p_isbn; END$$ DELIMITER ;
8Code language: SQL [Structured Query Language] [sql]
CALL find_all[];