Kiểm tra nếu sự thiết lập của bạn ( trong file my.cnf ) đã thay đổi đường dẫn của file mysql.sock .
lionel@it:~$ sudo netstat -lnp | grep mysql
Chỉnh lại đường dẫn trong file lionel@it:/etc$ cat my.cnf giống bên dưới
[mysqld]
local-infile=0
innodb_file_per_table
[client]
socket=/var/run/mysqld/mysqld.sock
Phải dựa vào bài viết này mới fix dược :(
Lỗi: Error connecting to MySQL: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Nêu như bạn gặp lỗi không thể kết nối tới file mysql.sock.
Bạn có thể thực hiện theo các bước sau để xử lý lỗi này:
1. Kiểm tra sự tồn tại của file mysql.sock
ls -la /var/lib/mysql/mysql.sock
Sẽ thu được kết quả:
[root@tenten-VPS]# ls -la /var/lib/mysql/mysql.sock
ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory
2. Kiểm tra nếu sự thiết lập của bạn ( trong file my.cnf ) đã thay đổi đường dẫn của file mysql.sock .
netstat -lnp | grep mysql
Nếu kết quả thu được:
[root@tenten-VPS]# netstat -lnp | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 25151/mysqld
unix 2 [ ACC ] STREAM LISTENING 27600272 25151/mysqld /var/lib/mysql/mysql.sock
Tức là đường dẫn đến file mysql.sock không sai, như vậy file mysql.sock đã không được tạo ra.
3. Kiểm tra sự hoạt động dịch vụ mysql
Kết quả thu được như sau:
[root@tenten-VPS]# ps ax | grep mysql
16343 ? S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/tenten.myvps.vn.pid
16653 ? Sl 2:50 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/tenten.myvps.vn.err --open-files-limit=8192 --pid-file=/var/lib/mysql/tenten.myvps.vn.pid
19786 pts/1 S+ 0:00 grep mysql
Như vậy, dịch vụ mysql đang hoạt động bình thường.
4. Khởi động lại dịch vụ mysql nhằm mục đích khởi tạo lại file mysql.sock.
cách 1:
Sử dụng lệnh:
/etc/init.d/mysqld stop
Kết quả thu được:
[root@tenten-VPS ~]# /etc/init.d/mysqld stop
Shutting down MySQL............................ SUCCESS!
Tiếp theo:
/etc/init.d/mysqld start
Kết quả:
[root@tenten-VPS ~]# /etc/init.d/mysqld start
Starting MySQL.............................. SUCCESS!
Kiểm tra lại sự tồn tại của file mysql.sock
[root@tenten-VPS ~]# ls -la /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Sep 29 10:32 /var/lib/mysql/mysql.sock
Cách 2:
Sử dụng lệnh sau:
killall -9 mysqld mysqld_safe
killall -9 mysqld mysqld_safe
Sau đó bật lại dịch vụ mysql
/etc/init.d/mysqld start
Kết quả thu được như sau:
[root@tenten-VPS ~]# /etc/init.d/mysqld start
Starting MySQL.............................. SUCCESS!
Cuối cùng, kiểm tra lại sự tồn tại của file mysql.sock như cách trên.