Hướng dẫn chmod cannot access var run mysqld mysqld sock no such file or directory - chmod không thể truy cập var run mysqld mysqld sock không có tệp hoặc thư mục như vậy

Vấn đề của tôi bắt đầu với tôi không thể đăng nhập như root thêm vào cài đặt MySQL của tôi. Tôi đã cố gắng chạy MySQL mà không cần bật mật khẩu ... nhưng bất cứ khi nào tôi chạy lệnh

# mysqld_safe --skip-grant-tables &

Tôi sẽ không bao giờ nhận được lời nhắc trở lại. Tôi đã cố gắng làm theo các hướng dẫn này để khôi phục mật khẩu.

Màn hình trông như thế này:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Và tôi không nhận được lời nhắc để bắt đầu gõ các lệnh SQL để đặt lại mật khẩu.

Khi tôi giết nó bằng cách nhấn Ctrl + C, tôi nhận được thông báo sau:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Nếu tôi thử lại lệnh và để nó đủ lâu, tôi sẽ nhận được một loạt các tin nhắn sau:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

Nhưng sau đó nếu tôi cố gắng đăng nhập làm root bằng cách làm:

# mysql -u root

Tôi nhận được thông báo lỗi sau:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Tôi đã kiểm tra và tệp

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
5 không tồn tại. Thư mục làm, nhưng không phải là tập tin.

Ngoài ra, tôi không biết điều này có giúp ích hay không, nhưng tôi đã chạy

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
6 và nó đã đưa ra:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

Tôi là người mới đến Linux và MySQL, vì vậy tôi không biết điều này có bình thường hay không. Nhưng tôi bao gồm thông tin này chỉ trong trường hợp nó giúp.

Cuối cùng tôi đã quyết định gỡ cài đặt và cài đặt lại MySQL.

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

Sau khi cài đặt lại tất cả các gói một lần nữa theo cùng một thứ tự như trên, trong quá trình cài đặt phpmyadmin, tôi đã gặp lỗi tương tự:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Vì vậy, tôi đã thử một lần nữa để gỡ cài đặt/cài đặt lại. Lần này, sau khi tôi gỡ cài đặt các gói, tôi cũng đã đổi tên thủ công tất cả các tệp và thư mục MySQL thành

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
7 ở các vị trí tương ứng của chúng.

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

Sau đó, tôi đã cố gắng cài đặt lại

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
8 và
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
9 một lần nữa. Nhưng tôi đã nhận thấy rằng nó không nhắc tôi về mật khẩu. Nó không được yêu cầu mật khẩu quản trị viên?

Bạn có thể cần kiểm tra xem: a) mysql đang chạy b) ổ cắm được bật c) vị trí ổ cắm mặc định có khả dụng không

Vì vậy, đây là cách bạn sẽ đi về nó: a) Kiểm tra MySQL đang chạy

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
0

Nếu số đếm trở lại 0 thì MySQL không chạy. Kiểm tra này cũng sẽ bị bắt nếu MySQL đã được bắt đầu với Safe_MysQLD.

Nếu bạn không nghĩ rằng nó đang chạy thì bạn có thể phát hành tập lệnh khởi động tiêu chuẩn.

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
1

Nếu bạn kiểm tra lại và câu trả lời là 0 thì MySQL vì một số lý do không bắt đầu và bạn có vấn đề lớn hơn. Một nơi tốt để bắt đầu là kích hoạt MySQLD từ dòng lệnh bằng cách sử dụng cuộc gọi nhị phân xương trần, nếu có gì đó không ổn, nó nên được đẩy ra lỗi tiêu chuẩn trên bảng điều khiển.

b) Nếu máy chủ đang chạy, bạn có thể kiểm tra xem nó có bật ổ cắm bằng cách kiểm tra tệp cấu hình My.cnf hay bằng cách sử dụng NetStat

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2

Điều này sẽ cho bạn biết nếu ổ cắm có sẵn -> chúng có thể ở trạng thái được kết nối hoặc nghe. Nếu không có ổ cắm nghe có sẵn thì có thể máy chủ của bạn quá bận rộn để nói chuyện với bạn. Nhưng nói chung nếu máy chủ đang chạy, ít nhất bạn nên có một ổ cắm nghe.

c) Bạn nên kiểm tra tệp My.cnf của mình để xem vị trí ổ cắm ở đâu - trong trường hợp nó không khớp với mặc định; Và liệu nó không được bình luận.

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
3

hoặc

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
4

Mysqld sock là gì?

MySQL quản lý các kết nối đến máy chủ cơ sở dữ liệu thông qua việc sử dụng tệp ổ cắm, một loại tệp đặc biệt tạo điều kiện cho giao tiếp giữa các quy trình khác nhau. Tệp ổ cắm của máy chủ MySQL được đặt tên là MySQLD. Sock và trên các hệ thống Ubuntu, nó thường được lưu trữ trong thư mục/var/Run/mysqld/.The MySQL server's socket file is named mysqld. sock and on Ubuntu systems it's usually stored in the /var/run/mysqld/ directory.

MySQL Sock ở đâu trong Linux?

Tệp ổ cắm của MySQL được gọi là MySQL.Sock và nó được đặt trong thư mục/var/Run/mysqld/ubuntu./var/run/mysqld/ Ubuntu directory.

Không thể kết nối với máy chủ MySQL cục bộ thông qua ổ cắm '[Đường dẫn đến MySQLD Sock]'?

Cách sửa lỗi 'Không thể kết nối với máy chủ MySQL cục bộ thông qua ổ cắm' /var/run/mysqld/mysqld.sock '(2)'..
Phương pháp 1: Kiểm tra dịch vụ MySQL ..
Phương pháp 2: Xác minh vị trí mysqld.sock ..
Phương pháp 3: Kiểm tra quyền của thư mục MySQL ..
Phương pháp 4: Kiểm tra nhiều phiên bản MySQL ..

Không thể kết nối với máy chủ MySQL thông qua ổ cắm Ubuntu?

Để khắc phục sự cố ổ cắm MySQL và truy cập lỗi bị từ chối đối với root@localhost, hãy làm theo các bước dưới đây.Dừng máy chủ MySQL bằng cách thực thi lệnh Dịch vụ SUDO SUDO MySQL dừng. Xóa vị trí ổ cắm như một trình giữ chỗ bằng cách thực thi lệnh của Sudo sudo mkdir -p/var/run/mysqld.Stop the MySQL server by executing the command “ sudo service mysql stop “. Create socket location as a placeholder by executing the command “ sudo mkdir -p /var/run/mysqld “.