Kết nối tối đa trong MySQL là gì?

Theo những gì tôi biết, nếu bạn muốn liên tục có cài đặt này cho cơ sở dữ liệu MySQL của mình, bạn sẽ sửa đổi cài đặt

max_connections = [Available RAM - Global Buffers] / Thread Buffers
2 trong tệp cấu hình MySQL của mình. Vị trí của tệp này có thể khác nhau tùy thuộc vào phiên bản MySQL

  • max_connections = [Available RAM - Global Buffers] / Thread Buffers
    3
  • max_connections = [Available RAM - Global Buffers] / Thread Buffers
    4
  • max_connections = [Available RAM - Global Buffers] / Thread Buffers
    5

Bạn cũng có thể xác định vị trí của tệp cấu hình bằng cách chạy

max_connections = [Available RAM - Global Buffers] / Thread Buffers
6. Lệnh đó sẽ xuất ra một cái gì đó dọc theo những dòng này

Default options are read from the following files in the given order:
/etc/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

Trong tệp cấu hình, bạn sẽ muốn tìm phần [mysqld]. Trong phần đó, bạn sẽ muốn chèn/sửa đổi dòng thành

max_connections = [Available RAM - Global Buffers] / Thread Buffers
7. Bạn sẽ đặt
max_connections = [Available RAM - Global Buffers] / Thread Buffers
8 làm kết nối tối đa mong muốn

Sử dụng phương pháp này sẽ yêu cầu bạn khởi động lại máy chủ MySQL của mình bằng cách chạy lệnh.

max_connections = [Available RAM - Global Buffers] / Thread Buffers
9. Nếu cách đó không hiệu quả, hãy thử chạy
[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100
0

Nếu bạn muốn tạm thời tăng kết nối tối đa, bạn sẽ phải sửa đổi một biến trong MySQL. Bạn sẽ có thể đạt được điều này bằng cách làm như sau

  • Truy cập công cụ dòng lệnh MySQL của bạn

  • Chỉ huy.

    max_connections = [Available RAM - Global Buffers] / Thread Buffers
    20

  • Điều này sẽ trả về một đầu ra như vậy

    Tên_biến Giá_trị max_connections 100
  • Nếu bạn có quyền thích hợp, hãy thay đổi biến bằng cách chạy lệnh.

    max_connections = [Available RAM - Global Buffers] / Thread Buffers
    21. Bạn sẽ chèn giá trị kết nối tối đa mong muốn vào vị trí của
    max_connections = [Available RAM - Global Buffers] / Thread Buffers
    22

Các thay đổi sử dụng phương pháp này sẽ có hiệu lực ngay lập tức, nhưng sẽ được đặt lại về giá trị mặc định sau khi khởi động lại MySQL

Thông thường, giá trị MySQL max_connections không đủ sẽ gây ra lỗi “Quá nhiều kết nối” khi chúng tôi thử kết nối với máy chủ MySQL

Tại Bobcares, chúng tôi thường nhận được yêu cầu sửa lỗi MySQL, như một phần của Dịch vụ quản lý máy chủ của chúng tôi

Hôm nay hãy xem các Kỹ sư hỗ trợ của chúng tôi khắc phục lỗi này cho khách hàng như thế nào

MySQL max_connections là gì?

MySQL max_connections là số lượng kết nối máy khách đồng thời mà máy chủ có thể chấp nhận

Giá trị mặc định cho điều này là 151. Tuy nhiên, có thêm một kết nối mặc định vượt quá giới hạn max_connections

Nói chung, điều này được dành riêng cho người dùng cơ sở dữ liệu có đặc quyền SUPER để chẩn đoán các sự cố kết nối

Giá trị 151 không có nghĩa là chỉ cho phép 151 số lượng kết nối

Khi các yêu cầu MySQL tăng đột ngột, thường là do lưu lượng truy cập lớn, máy chủ sẽ không thể xử lý chúng. Do đó, các trang web bắt đầu hiển thị lỗi MySQL max_connections đã đạt mức tối đa

Đến đúng giá trị max_connections

Bây giờ, hãy kiểm tra cách các Kỹ sư MySQL của chúng tôi tính toán giá trị lý tưởng cho các kết nối tối đa trên máy chủ

Thông thường, số lượng kết nối tối đa phụ thuộc vào RAM khả dụng và mức sử dụng bộ nhớ cho mỗi kết nối. Và, được tính như

max_connections = [Available RAM - Global Buffers] / Thread Buffers

Tại đây, Bộ đệm toàn cầu bao gồm key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additional_mem_pool_size, net_buffer_size, query_cache_size sau đây

Và, Bộ đệm chủ đề bao gồm. sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack

Ngoài ra, các Kỹ sư của chúng tôi xem xét các truy vấn MySQL khác nhau, loại ứng dụng, v.v. trong khi tăng giá trị max_connection

Làm cách nào chúng tôi sửa lỗi MySQL max_connections đạt mức tối đa?

Gần đây, một trong những khách hàng của chúng tôi đã tiếp cận chúng tôi với yêu cầu rằng cổng thông tin của anh ấy không phản hồi. Vì vậy, chúng tôi đã kiểm tra máy chủ của khách hàng và thấy tải quá cao

Vì vậy, chúng tôi đã kiểm tra sâu để tìm ra nguyên nhân của tải trọng cao như vậy. Chúng tôi đã kiểm tra nhật ký truy cập

Các kỹ sư của chúng tôi nhận thấy rằng max_connections quá thấp để xử lý số lượng lớn kết nối như vậy. Vì vậy, chúng tôi đã tăng max_connections như được hiển thị

Và, khởi động lại dịch vụ MySQL

Cuối cùng, điều này đã khắc phục sự cố

Ngoài ra, việc chọn giá trị phù hợp cho max_connections không dựa trên quy tắc cố định vì nó phụ thuộc vào khối lượng công việc của máy chủ của chúng tôi

[Gặp sự cố với máy chủ MySQL? . ]

Phần kết luận

Tóm lại, việc cấu hình database server không đầy đủ thường dẫn đến lỗi MySQL max_connection Đạt max. Hôm nay, chúng ta đã thảo luận chi tiết về MySQL max_connection và xem cách Kỹ sư hỗ trợ của chúng tôi điều chỉnh các tham số MySQL để tránh lỗi

Máy chủ WordPress được quản lý cho phép 24 kết nối đồng thời. Thật không may, giá trị này không thể tăng lên. Nếu bạn yêu cầu một dịch vụ cần kết nối bổ sung, bạn có thể muốn xem xét máy chủ VPS, vì điều đó sẽ cho phép bạn có giá trị mặc định cao hơn là 100, với khả năng tăng giá trị hơn nữa nếu muốn

Tổng quan

 

Nếu bạn gặp lỗi Quá nhiều kết nối khi cố gắng kết nối với máy chủ mysqld, điều này có nghĩa là tất cả các kết nối có sẵn đang được sử dụng bởi các máy khách khác. Số lượng kết nối cho phép được kiểm soát bởi biến hệ thống max_connections. Giá trị mặc định của nó là 100. Nếu cần hỗ trợ nhiều kết nối hơn, bạn nên đặt giá trị lớn hơn cho biến này

MySQL SmartPool v. 2 cho Grid đi kèm với 30 kết nối MySQL

Nếu bạn gặp lỗi

[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100
4 khi cố gắng kết nối với
[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100
0
server, this means that all available connections are in use by other clients.

Số lượng kết nối cho phép được kiểm soát bởi biến hệ thống

[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100
1 . Giá trị mặc định của nó là 100. Nếu cần hỗ trợ nhiều kết nối hơn, bạn nên đặt giá trị lớn hơn cho biến này.

Yêu cầu

Trước khi bạn bắt đầu, bài viết này có các phụ thuộc sau

  • Bạn phải thiết lập quyền truy cập SSH cho người dùng root hoặc sudo
    • Làm cách nào để kích hoạt quyền truy cập root vào DV của tôi?
    • Làm cách nào để tắt đăng nhập SSH cho người dùng root?

ĐỌC TÔI TRƯỚC
Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba không được hỗ trợ bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ.

Hỗ trợ nâng cao có thể trợ giúp.
Nếu bạn gặp sự cố với các bước trong bài viết này, bạn có thể được hỗ trợ thêm qua Hỗ trợ nâng cao, bộ phận dịch vụ cao cấp của chúng tôi. Các kỹ sư chuyên gia của chúng tôi có thể tinh chỉnh và điều chỉnh máy chủ của bạn để có hiệu suất tối ưu. Để biết thêm thông tin về những gì Hỗ trợ nâng cao có thể làm cho bạn, vui lòng nhấp vào đây.

Hướng dẫn

Có thể nâng cấp các kết nối MySQL đồng thời của bạn bằng cách thêm MySQL GridContainer vào gói lưu trữ Grid của bạn. Ba kích cỡ khác nhau được cung cấp lần lượt là 60, 100 và 150 kết nối đồng thời

Để biết thêm thông tin về MySQL GridContainer, vui lòng xem trang sản phẩm Lưới của chúng tôi

Để tăng số kết nối tối đa mà MySQL cho phép, bạn phải chỉnh sửa tệp

[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100
2. Kết nối với máy chủ thông qua SSH với tư cách là người dùng root hoặc sudo và nhập cái này

vi /etc/my.cnf

Sẽ có một phần như thế này. [có thể hơi khác]

[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0

max_connections = 100

Trong [mysqld], bạn có thể tăng kết nối MySQL tối đa của mình bằng cách thay đổi thuộc tính max_connections thành một cái gì đó như thế này


[mysqld]
safe-show-database
innodb_data_file_path=ibdata1:10M:autoextend
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

Thêm dòng sau vào [mysqld]

________số 8

Tệp cấu hình kết quả sẽ giống như thế này

[mysqld]
safe-show-database
innodb_data_file_path=ibdata1:10M:autoextend
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_connections=250

Lưu các thay đổi và nhập nội dung sau để khởi động lại mysqld

max_connections = [Available RAM - Global Buffers] / Thread Buffers
0

Bạn sẽ thấy

max_connections = [Available RAM - Global Buffers] / Thread Buffers
1

Nếu dừng FAILS, thì bạn đã làm sai điều gì đó. Cố gắng quay lại và đảm bảo rằng bạn đã nhập chính xác cài đặt mới

GHI CHÚ

Nếu bạn muốn kiểm tra xem cài đặt này có được áp dụng thành công hay không, bạn có thể kiểm tra bằng một trong các phương pháp sau

Các kết nối được sử dụng tối đa trong MySQL là gì?

MySQL có thể xử lý bao nhiêu kết nối? . 5+ có thể xử lý tối đa 151 kết nối . Số này được lưu trữ trong biến máy chủ có tên max_connections.

Kết nối tối đa là gì?

Số kết nối tối đa kiểm soát số lượng kết nối duy trì hoạt động tối đa mà máy chủ duy trì . Phạm vi có thể là từ 0 đến 32768 và mặc định là 256.

Làm cách nào để đặt kết nối tối đa trong MySQL?

Chuyển đến Sudo /opt/lampp/etc/my. cnf/ Thêm max_connections = ví dụ giá trị của bạn max_connections = 5000. Sudo systemctl tải lại-daemon

Kết nối người dùng tối đa nghĩa là gì?

max_user_connections nghĩa là gì? . Nó đặt giới hạn về số lượng kết nối đồng thời tối đa mà bất kỳ người dùng cá nhân nào có thể có đối với cơ sở dữ liệu MySQL của bạn

Chủ Đề