máy chủ mysql khởi động thất bại


28

Tôi đang chạy máy chủ Ubuntu. Khi tôi cố gắng đăng nhập vào mysql (đang chạy), tôi đã gặp lỗi sau

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

Nhưng tập tin mysqld.sock không tồn tại trong /var/run/mysqldthư mục. Khi thực hiện ps aux | grep mysqllệnh, tôi nhận ra rằng máy chủ mysql không chạy.

Sau đó tôi đã cố gắng khởi động lại máy chủ mysql bằng cách sử dụng

service mysql start
service mysql restart
/etc/init.d/mysql start

Nhưng, quá trình bắt đầu thất bại trong cả 3 trường hợp. /var/log/mysql/mysql.log/var/log/mysql/mysql.errcác tập tin trống rỗng.

Nhưng /var/log/error.loghiển thị thông tin sau:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete

xem nếu điều này giúp: serverfault.com/questions/104014/...
Rinzwind

1
Đầu ra của là ls /var/lib/mysql/ib_logfile*gì?
việc

ls: không thể truy cập / var / lib / mysql / ib_logfile *: Không có tệp hoặc thư mục như vậy
ananth

1
Thư mục / var / lib / mysql của bạn có thể ghi được cho mysql không?
Jos

1
Tôi là một newbie linux..Tôi đã thay đổi quyền của / var / lib / mysql bằng cách sử dụng chmod 777 . Bạn có thể vui lòng gợi ý cho tôi cách kiểm tra nếu điều này không đúng?
ananth

Câu trả lời:


28

Mở một thiết bị đầu cuối ( Ctrl+ Alt+ t) và làm như sau:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

và nhận xét dòng record_buffer=64Mtrong /etc/mysql/my.cnf [1]

và sau đó khởi động lại msyql bằng cách sử dụng:

sudo service mysql restart

(Nguồn)


1
Tôi chạy các lệnh bạn mentioned..On chạy dịch vụ sudo mysql khởi động lại, nó đã dừng lại nhắn: Ví dụ Unknown và shell prompt đã không xuất hiện (khởi động lại vẫn chạy từ quá khứ 50 phút)
Ananth

1
Ngoài ra, bây giờ nhật ký lỗi cho biết: -140425 15:09:11 InnoDB: định dạng tệp được hỗ trợ cao nhất là Barracuda. 140425 15:09:12 InnoDB: Chờ đợi các chủ đề nền bắt đầu 140425 15:09:13 InnoDB: 5.5.37 đã bắt đầu; số thứ tự đăng nhập 940942258188 140425 15:09:13 [ERROR] / usr / sbin / mysqld: biến không xác định 'record_buffer = 64M' 140425 15:09:13 [ERROR] Hủy bỏ 140425 15:09:13 InnoDB 140425 15:09:14 InnoDB: Hoàn thành tắt máy; số thứ tự đăng nhập 940942258188 140425 15:09:14 [Lưu ý] / usr / sbin / mysqld: Tắt máy hoàn tất
ananth

Không..Tôi đã khởi động lại dịch vụ mysudo.
ananth

Bạn có thể thử làm sudo service mysql startkhông?
việc

Tôi có nên giết quá trình khởi động lại mysql đang chạy không? Nó sẽ gây ra vấn đề gì chứ ??
ananth

9

Điều này đã giải quyết vấn đề của tôi:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
Sau khi áp dụng các bước này, cơ sở dữ liệu của tôi đã bị xóa. Bây giờ tôi sẽ làm gì ??
Amit Yadav

7

Tôi đã giải quyết vấn đề theo cách sau:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

Trong một bối cảnh khác, tôi phải đối mặt với nó vì trình nền mysql không khởi động được. Vì vậy, bắt đầu daemon với lệnh - mysqld startvà sau đó cố gắng bắt đầu dịch vụ.


2

Tôi đã có cùng một thông báo lỗi và cùng một khoảng trống trong các tệp nhật ký. Trong tệp cấu hình của tôi (my.cnf) tôi đã chỉ định rằng tôi muốn sử dụng các bảng myisam, bằng cách thêm dòng này vào phần [mysqld]:

default-table-type = myisam

Sau khi nâng cấp mysql có vẻ như điều này khiến mysql không khởi động. Tôi đã thay đổi điều này thành:

default-storage-engine = myisam

và bây giờ mọi thứ hoạt động tốt.


1

Tăng RAM có sẵn bằng cách thêm không gian Hoán đổi mới cũng có thể giúp ích. Các bước ở đây

Đảm bảo rằng bạn tạo / hoán đổi kích thước nhỏ hơn không gian có sẵn được hiển thị bởi

df -h

Ví dụ với tôi đầu ra của df- h là:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Vì vậy, tôi đã tạo bằng 2 G

sudo fallocate -l 2G /swapfile

Và sau đó chỉ cần bắt đầu dịch vụ

sudo /etc/init.d/mysql restart

Hi vọng điêu nay co ich. Tất cả tốt nhất.


1

Giải pháp của tôi:

Kiểm tra xem trong tất cả /etc/rc1.d ... /etc/rc5.d tập lệnh mysql bắt đầu bằng S (Ex S10mysql) chứ không phải K AS K10mysql.

Giải thích: Tiền tố K tải với điểm dừng, loại dịch vụ tiêu diệt; và tiền tố S bắt đầu với tham số bắt đầu.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

Trong trường hợp của tôi, đó là một vấn đề không gian. Kiểm tra nếu bạn có đủ không gian còn lại.

từ /var/log/mysql/error.logtôi có một số gợi ý từ hai dòng:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Tôi có thể thấy rằng đó là một vấn đề không gian.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

Từ đây, tôi có thể thấy rằng không còn đủ dung lượng trên máy chủ ảo /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Và tôi đã nghĩ về việc di chuyển hoặc tăng ổ đĩa ảo, nhưng tôi đã quyết định loại bỏ các tệp không cần thiết trước tiên.

Vì vậy, phải dọn sạch bộ nhớ cache và các tệp không cần thiết:

#apt-get clean
#apt-get -f autoremove

Sau đó, đừng quên loại bỏ các tệp nhật ký bị hỏng mysql sau đó. Chúng sẽ được tạo lại khi bạn khởi động lại mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Kiểm tra dịch vụ máy chủ mysql của bạn và nó có thể đang hoạt động

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Trường hợp đóng cửa. Tôi hy vọng nó sẽ giúp.


0

Xóa tệp /var/lib/mysql/.run-mysql_upTHER và nó sẽ bắt đầu

;)

"Với sức mạnh lớn đến trách nhiệm lớn"


0

Tôi đã có vấn đề này khi tôi đặt max_allowed_packet = 0.5Mvào /etc/mysql/my.cnf.

Tôi đã giải quyết nó bằng cách thay đổi max_allowed_packetthành 1M.


0

Lệnh sau giải quyết vấn đề của tôi và mysql có thể bắt đầu sau nó. (Nó có thể hữu ích trong một số trường hợp)

chown -R mysql: /var/lib/mysql
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.