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
3max_connections = [Available RAM - Global Buffers] / Thread Buffers
4max_connections = [Available RAM - Global Buffers] / Thread Buffers
5max_connections = [Available RAM - Global Buffers] / Thread Buffers
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àyDefault 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ốnSử 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
0Nế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.
20max_connections = [Available RAM - Global Buffers] / Thread Buffers
Điều này sẽ trả về một đầu ra như vậy
Tên_biến Giá_trị max_connections 100Nếu bạn có quyền thích hợp, hãy thay đổi biến bằng cách chạy lệnh.
21. Bạn sẽ chèn giá trị kết nối tối đa mong muốn vào vị trí củamax_connections = [Available RAM - Global Buffers] / Thread Buffers
22max_connections = [Available RAM - Global Buffers] / Thread Buffers
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
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.[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0
max_connections = 100
Số lượng kết nối cho phép được kiểm soát bởi biến hệ thống
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. [mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0
max_connections = 100
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àyvi /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ố 8Tệ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
0Bạn sẽ thấy
max_connections = [Available RAM - Global Buffers] / Thread Buffers
1Nế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