Vấn đề của tôi bắt đầu với việc tôi không thể đăng nhập bằng root nữa trong cài đặt mysql của mình. Tôi đã cố chạy mysql mà không 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 lại. Tôi đã cố gắng làm theo các hướng dẫn để 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 nhập 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 thông báo 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 bằng root bằng cách thực hiện:
# 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à /var/run/mysqld/mysqld.sock
tập tin không tồn tại. Các thư mục không, 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 find / -name mysqld
và nó đã xuất hiện:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Tôi mới sử dụng 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 theo 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 tự đổi tên tất cả các tệp và thư mục mysql thành các mysql.bad
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 mysql-server
và mysql-client
một lần nữa. Nhưng tôi nhận thấy rằng nó không nhắc tôi nhập mật khẩu. Không phải yêu cầu mật khẩu quản trị viên sao?
/var/run/mysqld/mysqld.sock
mất. Vấn đề bạn liên kết có tập tin đó.