Hướng dẫn mysql server keeps stopping - máy chủ mysql liên tục dừng

B.3.2.2 & nbsp; không thể kết nối với [cục bộ] Máy chủ MySQL

Máy khách MySQL trên UNIX có thể kết nối với máy chủ MySQLD theo hai cách khác nhau: bằng cách sử dụng tệp ổ cắm UNIX để kết nối thông qua tệp trong hệ thống tệp (mặc định /tmp/mysql.sock) hoặc bằng cách sử dụng TCP/IP, kết nối qua số cổng. Kết nối tệp unix nhanh hơn TCP/IP, nhưng chỉ có thể được sử dụng khi kết nối với máy chủ trên cùng một máy tính. Tệp ổ cắm UNIX được sử dụng nếu bạn không chỉ định tên máy chủ hoặc nếu bạn chỉ định tên máy chủ đặc biệt localhost.mysqld server in two different ways: By using a Unix socket file to connect through a file in the file system (default /tmp/mysql.sock), or by using TCP/IP, which connects through a port number. A Unix socket file connection is faster than TCP/IP, but can be used only when connecting to a server on the same computer. A Unix socket file is used if you do not specify a host name or if you specify the special host name localhost.

Nếu máy chủ MySQL đang chạy trên Windows, bạn có thể kết nối bằng TCP/IP. Nếu máy chủ được bắt đầu với biến hệ thống named_pipe được bật, bạn cũng có thể kết nối với các đường ống được đặt tên nếu bạn chạy máy khách trên máy chủ nơi máy chủ đang chạy. Tên của đường ống được đặt tên là MySQL theo mặc định. Nếu bạn không đặt tên máy chủ khi kết nối với MySQLD, trước tiên, máy khách MySQL cố gắng kết nối với đường ống được đặt tên. Nếu điều đó không hoạt động, nó kết nối với cổng TCP/IP. Bạn có thể buộc sử dụng các đường ống được đặt tên trên Windows bằng cách sử dụng . làm tên máy chủ.mysqld, a MySQL client first tries to connect to the named pipe. If that does not work, it connects to the TCP/IP port. You can force the use of named pipes on Windows by using . as the host name.

Lỗi (2002)

$> netstat -ln | grep mysql
0 thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ. Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.

Lỗi (2003)

$> netstat -ln | grep mysql
1 '(10061) chỉ ra rằng kết nối mạng đã bị từ chối. Bạn nên kiểm tra xem có máy chủ MySQL chạy không, nó có kết nối mạng được bật và cổng mạng bạn đã chỉ định là mã được cấu hình trên máy chủ.

Bắt đầu bằng cách kiểm tra xem có một quy trình có tên MySQLD chạy trên máy chủ máy chủ của bạn không. . Xem Phần & NBSP; 2.10.2, Bắt đầu máy chủ.mysqld running on your server host. (Use ps xa | grep mysqld on Unix or the Task Manager on Windows.) If there is no such process, you should start the server. See Section 2.10.2, “Starting the Server”.

Nếu một quy trình MySQLD đang chạy, bạn có thể kiểm tra nó bằng cách thử các lệnh sau. Tên số cổng hoặc tên tệp unix có thể khác nhau trong thiết lập của bạn.

$> netstat -ln | grep mysql
2 đại diện cho địa chỉ IP của máy nơi máy chủ đang chạy.mysqld process is running, you can check it by trying the following commands. The port number or Unix socket file name might be different in your setup.
$> netstat -ln | grep mysql
2 represents the IP address of the machine where the server is running.

$> mysqladmin version
$> mysqladmin variables
$> mysqladmin -h `hostname` version variables
$> mysqladmin -h `hostname` --port=3306 version
$> mysqladmin -h host_ip version
$> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version

Lưu ý việc sử dụng các dấu backtick thay vì dấu ngoặc kép với lệnh tên máy chủ; Những điều này khiến đầu ra của tên máy chủ (nghĩa là tên máy chủ hiện tại) được thay thế vào lệnh mysqladmin. Nếu bạn không có lệnh tên máy chủ hoặc đang chạy trên Windows, bạn có thể nhập thủ công tên máy chủ của máy (không có backticks) theo tùy chọn

$> netstat -ln | grep mysql
3. Bạn cũng có thể thử
$> netstat -ln | grep mysql
4 để kết nối với TCP/IP với máy chủ cục bộ.hostname command; these cause the output of hostname (that is, the current host name) to be substituted into the mysqladmin command. If you have no hostname command or are running on Windows, you can manually type the host name of your machine (without backticks) following the
$> netstat -ln | grep mysql
3 option. You can also try
$> netstat -ln | grep mysql
4 to connect with TCP/IP to the local host.

Đảm bảo rằng máy chủ chưa được cấu hình để bỏ qua các kết nối mạng hoặc (nếu bạn đang cố gắng kết nối từ xa) rằng nó không được cấu hình để chỉ nghe cục bộ trên các giao diện mạng của nó. Nếu máy chủ được bắt đầu với biến hệ thống

$> netstat -ln | grep mysql
5 được bật, nó không thể chấp nhận các kết nối TCP/IP. Nếu máy chủ được bắt đầu với biến hệ thống
$> netstat -ln | grep mysql
6 được đặt thành
$> netstat -ln | grep mysql
7, nó sẽ lắng nghe các kết nối TCP/IP chỉ cục bộ trên giao diện loopback và không chấp nhận kết nối từ xa.

Kiểm tra để đảm bảo rằng không có truy cập chặn tường lửa vào MySQL. Tường lửa của bạn có thể được cấu hình trên cơ sở ứng dụng được thực thi hoặc số cổng được MySQL sử dụng để liên lạc (3306 theo mặc định). Trong Linux hoặc UNIX, hãy kiểm tra các bảng IP của bạn (hoặc tương tự) cấu hình để đảm bảo rằng cổng chưa bị chặn. Trong Windows, các ứng dụng như Tường lửa ZoneAlarm hoặc Windows có thể cần được cấu hình không chặn cổng MySQL.

Dưới đây là một số lý do lỗi

$> netstat -ln | grep mysql
8 có thể xảy ra:

  • MySQLD không chạy trên máy chủ cục bộ. Kiểm tra danh sách quy trình của hệ điều hành của bạn để đảm bảo quy trình MySQLD có mặt. is not running on the local host. Check your operating system's process list to ensure the mysqld process is present.

  • Bạn đang chạy một máy chủ MySQL trên Windows với nhiều kết nối TCP/IP với nó. Nếu bạn đang gặp phải điều đó thường xuyên mà khách hàng của bạn gặp lỗi đó, bạn có thể tìm thấy một cách giải quyết ở đây: Phần & NBSP; B.3.2.2.1, Kết nối với máy chủ MySQL không thành công trên Windows.

  • Ai đó đã xóa tệp ổ cắm UNIX mà MySQLD sử dụng (/tmp/mysql.sock theo mặc định). Ví dụ: bạn có thể có một công việc cron loại bỏ các tệp cũ khỏi thư mục

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    0. Bạn luôn có thể chạy phiên bản mysqladmin để kiểm tra xem tệp ổ cắm UNIX mà MySQLadmin đang cố gắng sử dụng thực sự tồn tại. Việc sửa chữa trong trường hợp này là thay đổi công việc cron để không xóa
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    1 hoặc đặt tệp ổ cắm ở một nơi khác. Xem Phần & NBSP; B.3.3.6, Cách bảo vệ hoặc thay đổi tệp ổ cắm UNIX MySQL.mysqld uses (/tmp/mysql.sock by default). For example, you might have a cron job that removes old files from the
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    0 directory. You can always run mysqladmin version to check whether the Unix socket file that mysqladmin is trying to use really exists. The fix in this case is to change the cron job to not remove
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    1 or to place the socket file somewhere else. See Section B.3.3.6, “How to Protect or Change the MySQL Unix Socket File”.

  • Bạn đã khởi động máy chủ MySQLD với tùy chọn

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    2, nhưng quên nói với các chương trình khách hàng tên mới của tệp ổ cắm. Nếu bạn thay đổi tên đường dẫn ổ cắm cho máy chủ, bạn cũng phải thông báo cho máy khách MySQL. Bạn có thể làm điều này bằng cách cung cấp tùy chọn
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3 tương tự khi bạn chạy các chương trình khách hàng. Bạn cũng cần đảm bảo rằng khách hàng có quyền truy cập tệp
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    1. Để tìm ra tệp ổ cắm ở đâu, bạn có thể làm:mysqld server with the
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    2 option, but forgotten to tell client programs the new name of the socket file. If you change the socket path name for the server, you must also notify the MySQL clients. You can do this by providing the same
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3 option when you run client programs. You also need to ensure that clients have permission to access the
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    1 file. To find out where the socket file is, you can do:

    $> netstat -ln | grep mysql

    Xem Phần & NBSP; B.3.3.6, Cách bảo vệ hoặc thay đổi tệp ổ cắm UNIX MySQL.

  • Bạn đang sử dụng Linux và một luồng máy chủ đã chết (lõi bị đổ). Trong trường hợp này, bạn phải tiêu diệt các chủ đề MySQLD khác (ví dụ: với Kill) trước khi bạn có thể khởi động lại máy chủ MySQL. Xem phần & nbsp; B.3.3.3, phải làm gì nếu MySQL tiếp tục gặp sự cố.mysqld threads (for example, with kill) before you can restart the MySQL server. See Section B.3.3.3, “What to Do If MySQL Keeps Crashing”.

  • Chương trình máy chủ hoặc máy khách có thể không có các đặc quyền truy cập phù hợp cho thư mục giữ tệp ổ cắm Unix hoặc chính tệp ổ cắm. Trong trường hợp này, bạn phải thay đổi các đặc quyền truy cập cho tệp thư mục hoặc ổ cắm để máy chủ và máy khách có thể truy cập chúng hoặc khởi động lại MySQLD với tùy chọn

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3 chỉ định tên tệp ổ cắm trong thư mục nơi máy chủ có thể tạo nó và nơi các chương trình khách hàng có thể truy cập nó.mysqld with a
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3 option that specifies a socket file name in a directory where the server can create it and where client programs can access it.

Nếu bạn nhận được thông báo lỗi

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
6, bạn có thể thử những điều sau đây để tìm hiểu vấn đề là gì:

  • Kiểm tra xem máy chủ có chạy trên máy chủ đó hay không bằng cách thực thi

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    7 và nhấn phím Enter một vài lần. . Nếu bạn gặp lỗi như
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    8, thì không có máy chủ nào chạy trên cổng đã cho.

  • Nếu máy chủ đang chạy trên máy chủ cục bộ, hãy thử sử dụng các biến mysqladmin -H localhost để kết nối bằng tệp ổ cắm UNIX. Xác minh số cổng TCP/IP mà máy chủ được cấu hình để nghe (đó là giá trị của biến

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    9.)mysqladmin -h localhost variables to connect using the Unix socket file. Verify the TCP/IP port number that the server is configured to listen to (it is the value of the
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    9 variable.)

  • Nếu bạn đang chạy theo Linux và Linux tăng cường bảo mật (SELINUX) được bật, hãy xem Phần & NBSP; 6.7, Hồi Selinux.

B.3.2.2.1 & nbsp; Kết nối với máy chủ MySQL không thành công trên Windows

Khi bạn đang chạy một máy chủ MySQL trên Windows với nhiều kết nối TCP/IP với nó và bạn đang gặp phải lỗi mà khách hàng của bạn gặp phải ) Cổng để phục vụ các kết nối đó.

Mục đích của

Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
1 là giữ một kết nối chấp nhận các gói ngay cả sau khi kết nối đã được đóng lại. Điều này là do định tuyến Internet có thể khiến một gói đi một tuyến đường chậm đến đích và nó có thể đến sau khi cả hai bên đã đồng ý đóng. Nếu cổng được sử dụng cho một kết nối mới, gói đó từ kết nối cũ có thể phá vỡ giao thức hoặc thỏa hiệp thông tin cá nhân từ kết nối ban đầu. Độ trễ
Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
1 ngăn chặn điều này bằng cách đảm bảo rằng cổng không thể được sử dụng lại cho đến khi một thời gian được phép cho các gói bị trì hoãn đến.

Có thể giảm đáng kể

Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
1 rất nhiều về các kết nối LAN vì có rất ít cơ hội các gói đến độ trễ rất dài, vì chúng có thể thông qua Internet với khoảng cách và độ trễ tương đối lớn.

Windows cho phép các cổng TCP phù du (thời gian tồn tại trong thời gian ngắn) cho người dùng. Sau khi bất kỳ cổng nào được đóng, nó vẫn ở trạng thái

Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
1 trong 120 giây. Cổng không có sẵn một lần nữa cho đến khi hết hạn. Phạm vi mặc định của số cổng phụ thuộc vào phiên bản Windows, với số lượng cổng hạn chế hơn trong các phiên bản cũ hơn:

  • Windows thông qua Server 2003: các cổng trong phạm vi 1025 bóng5000

  • Windows Vista, Server 2008 và Mới hơn: Cổng trong phạm vi 49152 Mạnh65535

Với một đống nhỏ các cổng TCP có sẵn (5000) và số lượng cổng TCP cao được mở và đóng trong một khoảng thời gian ngắn cùng với trạng thái

Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
1, bạn có cơ hội tốt để hết các cổng. Có hai cách để giải quyết vấn đề này:

  • Giảm số lượng cổng TCP được tiêu thụ nhanh chóng bằng cách điều tra kết nối gộp hoặc kết nối liên tục nếu có thể

  • Điều chỉnh một số cài đặt trong sổ đăng ký Windows (xem bên dưới)

Quan trọng

Quy trình sau đây liên quan đến việc sửa đổi sổ đăng ký Windows. Trước khi bạn sửa đổi sổ đăng ký, hãy đảm bảo sao lưu nó và đảm bảo rằng bạn hiểu cách khôi phục nó nếu xảy ra sự cố. Để biết thông tin về cách sao lưu, khôi phục và chỉnh sửa sổ đăng ký, hãy xem bài viết sau trong cơ sở kiến ​​thức của Microsoft: http://support.microsoft.com/kb/256986/en-us/.

  1. BẮT ĐẦU BẮT ĐẦU SÁNG SẢN (

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    6).

  2. Xác định vị trí khóa sau trong sổ đăng ký:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. Trên menu

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    7, nhấp vào
    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    8, sau đó thêm giá trị đăng ký sau:

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534

    Điều này đặt số lượng cổng phù du có sẵn cho bất kỳ người dùng nào.Phạm vi hợp lệ là từ 5000 đến 65534 (thập phân).Giá trị mặc định là 0x1388 (5000 thập phân).

  4. Trên menu

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    7, nhấp vào
    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    8, sau đó thêm giá trị đăng ký sau:

    Value Name: TcpTimedWaitDelay
    Data Type: REG_DWORD
    Value: 30

    Điều này đặt số lượng cổng phù du có sẵn cho bất kỳ người dùng nào.Phạm vi hợp lệ là từ 5000 đến 65534 (thập phân).Giá trị mặc định là 0x1388 (5000 thập phân).

  5. Điều này đặt số giây để giữ kết nối cổng TCP ở trạng thái

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534
    1 trước khi đóng.Phạm vi hợp lệ là từ 30 đến 300 thập phân, mặc dù bạn có thể muốn kiểm tra với Microsoft để biết các giá trị được phép mới nhất.Giá trị mặc định là 0x78 (120 thập phân).

  6. Thoát khỏi biên tập đăng ký.

Khởi động lại máy.