Sau khi cài đặt MySQL qua Brew, tôi gặp lỗi - Máy chủ thoát mà không cập nhật tệp PID


88

Được rồi, tôi đã tìm kiếm khắp nơi và đã dành khá nhiều thời gian để cài đặt, gỡ cài đặt, thử nhiều tùy chọn nhưng không thành công.

Tôi đang sử dụng Mac OS X Lion (10.7.3) và đang cố gắng thiết lập Python, MySQL.

Tôi đã cài đặt thành công Python và MySQL qua HomeBrew. Python hoạt động tốt.

Sau khi Cài đặt MySQL, tôi đã làm theo 2 bước đầu tiên - hủy đặt và các mysql_install_dblệnh.

Bây giờ, khi tôi cố gắng khởi động mysql "mysql.server start", tôi gặp lỗi sau

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar là tên người dùng của tôi trên máy tính của tôi.

Câu trả lời:


80

CHỈNH SỬA 2012/09/18: Như Kane đã chỉ ra , hãy đảm bảo rằng mysqlcơ sở dữ liệu được thiết lập đúng cách trước khi làm bất cứ điều gì khác. Xem “ Lỗi PID khi bắt đầu máy chủ mysql.server? ”Để biết thêm thông tin.

Câu trả lời ban đầu được lưu giữ vì lợi ích của lịch sử: Rất có thể đó vấn đề về quyền. Kiểm tra /usr/local/var/mysql/*.err. Tôi nói:

120314 16:30:14  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

Tôi cũng phải làm điều này:

sudo chown _mysql /usr/local/var/mysql/*

65
Tôi đã giải quyết được vấn đề chạy:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani

1
Tôi nhận được lỗi tương tự, nhưng tôi không có / usr / local / var / mysql thư mục :( Tôi cũng đang sử dụng homebrew.
Nathan tỉnh trưởng

2
Xem các nhận xét của brew info mysqlhoặc câu hỏi này để có giải pháp phù hợp
Kane

4
sudo chmod ugo + w / tmp là giải pháp của tôi.
Ben Racicot

2
của tôi đã được giải quyết bằng sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

Tôi thấy rằng đó là vấn đề về quyền với mysqlthư mục.

chmod -R 777 /usr/local/var/mysql/ 

đã giải quyết nó cho tôi.


18
không cần thiết phải làm điều này 777
JamesHalsall

2
Tôi cũng đã tìm kiếm trong một thời gian dài và đây là những gì đã sửa chữa nó cho tôi.
cắn vào

6
Xin lưu ý rằng tôi không khuyên bạn nên đặt bất kỳ thứ gì thành 777 trong môi trường sản xuất. Điều này chỉ cần được cài đặt cục bộ. Tôi cũng sẽ chuyển nó trở lại 755 là tối thiểu.
mikoop

1
Nếu bạn thấy lỗi khi khởi động mysql Cảnh báo: Tệp cấu hình có thể ghi thế giới '/var/lib/mysql/none-dev/my.cnf' bị bỏ qua Sau đó, bạn có thể muốn chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
của tôi đã được giải quyết bằng sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

Tôi đã kết thúc với việc cài đặt lại hoàn toàn mysql và cuối cùng nó đã hoạt động.

CẢNH BÁO Thao tác này sẽ xóa tất cả cơ sở dữ liệu của bạn, vì vậy trước tiên hãy nhớ lưu các kết xuất.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
Tôi đã thử thay đổi quyền theo mọi cách có thể mà không thành công. Đã kết thúc theo các hướng dẫn và ... thành công :)
kartsims

Đây là giải pháp DUY NHẤT mà tôi tìm thấy. Đây sẽ là số một
Dan

Cảm ơn, đây là điều duy nhất làm việc cho tôi. Mặc dù tôi không phải chạymysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Khởi động MySQL ... LỖI! Máy chủ thoát mà không cập nhật tệp PID (<path> -.lightspeed.irvnca.sbcglobal.net.pid). Gặp lỗi này
Unnikrishnan

1
Chỉ là vấn đề homebrew
McGrady,

31

Tôi gặp sự cố này trên mac 10.10.5 Yosemite

Tôi đã làm gì để giải quyết vấn đề này

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


Chúc mừng! Cách này là đơn giản nhất và tiết kiệm được ngày của tôi!
iplus26

Hoàn hảo, bạn đã cứu một ngày của tôi;)
Emy Stats

Thở dài. Sau khi thử mọi giải pháp trên internet trong 2 giờ, đây là những gì cuối cùng đã sửa nó! Một khởi động lại cũ tốt! :)
SexyBeast

18

Tháng 11 năm 2014: Nếu bạn gặp lỗi này trên MySQL 5.6.x trên Mac OS X Mavericks hoặc Yosemite và muốn sử dụng MySQL với PHP cục bộ (/tmp/mysql.sock là nơi PHP PDO dự kiến ​​sẽ tìm thấy tệp sock), đây là những gì đã sửa nó cho tôi:

1) Bỏ ghi chú các dòng tệp cấu hình homebrew mặc định và chỉnh sửa như bên dưới

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME là những gì bạn có trong Tùy chọn hệ thống -> Mạng làm id duy nhất cho máy tính của bạn trên mạng.

2) Đặt quyền trên tất cả các tệp trong datadir mysql. Tất cả đều thuộc sở hữu của [my_username]. MySQL rất kén chọn điều này và từ chối tạo tệp pid trừ khi nó (người dùng _mysql) sở hữu thư mục.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Khởi động MySQL bằng tập lệnh bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Hy vọng rằng sẽ giúp. Nếu cách trên không hiệu quả với bạn, hãy thử chạy nhị phân mysqld_safe theo cách thủ công trong thư mục Cellar / mysql / VERSION_ / bin / và kiểm tra cài đặt là gì (nếu nó chạy)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Nếu điều đó chạy, bạn có thể

ps aux | grep mysql 

và xem một cái gì đó giống như

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Tôi không chắc tại sao điều đó lại hiệu quả với tôi nhưng nó cho bạn biết tôi lấy các tùy chọn tệp cấu hình my.cnf từ đâu. Bạn cũng có thể sử dụng các tùy chọn dòng lệnh để cố gắng khắc phục sự cố khi khởi động mysqld theo cách thủ công.

Nếu bạn chạy quản lý để chạy máy chủ MySQL bằng mysqld_safe, bạn có thể phải làm điều này để tắt nó trước khi thử trình trợ giúp bash mysql.server. Không muốn giết -9 [PID] vì bạn có thể làm hỏng dữ liệu của mình.

mysqladmin -uroot shutdown

Chúc may mắn!


cảm ơn - của tôi đã được giải quyết bằng sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

Tôi gặp vấn đề tương tự trên OS X El Capitan, đây là chuỗi lệnh đầu cuối đã khắc phục sự cố cho tôi.

Xóa các tệp lỗi (bạn sẽ phải thay đổi đường dẫn tùy thuộc vào thiết lập của mình)

sudo rm /usr/local/mysql/data/*.err

Tìm thông tin cho quy trình mysql vẫn đang chạy và giết nó:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Bây giờ khởi động lại MySQL:

/usr/local/mysql/support-files/mysql.server start

10

Điều này đã làm việc cho tôi:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

Điều này đã giải quyết được sự cố của tôi trong MAC os 10.11.3 (sau khi thay đổi chế độ thành 777 của dir mysql)
Ratha

Điều này có nghĩa là Read Write Execute, hoặc toàn quyền cho tất cả người dùng đối với thư mục đó và (-R) tất cả các tệp và thư mục trong thư mục đó. Đối với giải thích chi tiết, xin hãy xem tại liên kết sau: linux.com/learn/understanding-linux-file-permissions
Krešimir Plese

4

Điều này đã làm việc cho tôi vào ngày 10.12.2:

$ rm /usr/local/var/mysql/*.err

sau đó

$ brew services restart mysql

3

Nếu tôi nhớ không nhầm thì đó là vấn đề về quyền. Cố gắng 'chạm' và 'chmod' tệp pid hoặc thư mục chứa tệp.


Không. Tôi thậm chí đã thử chmod 777 để xem liệu điều đó có giải quyết được vấn đề hay không nhưng không có gì. Cùng một LỖI.
Brajeshwar

Bạn đã thử chmod 777 thư mục mysql và xóa tệp pid và khởi động lại MySQL?
LonnyLot

3

Vấn đề của tôi là tôi đã khởi động máy chủ dưới dạng sudo một lần và sau đó cố gắng khởi động lại với tư cách người dùng cục bộ.

Ở đây mysql không thể ghi vào tệp '.err' do root sở hữu. Tôi đã phải xóa tệp đó và khởi động lại máy chủ:

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

Tôi đã gặp sự cố tương tự với MySQL trên máy Mac (Mac Os X Không thể khởi động Máy chủ MySQL. Lý do: 255 và cả “LỖI! Máy chủ thoát mà không cập nhật tệp PID”). Sau một quá trình dài thử nghiệm và gặp lỗi, cuối cùng để khôi phục quyền tệp, tôi chỉ cần làm điều đó:

khởi chạy Disk Utilities. Ứng dụng
chọn ổ đĩa của tôi trên bảng điều khiển bên trái,
nhấp vào nút "Sửa chữa quyền trên đĩa".

Điều này đã thực hiện thủ thuật cho tôi. Hy vọng điều này có thể giúp đỡ người khác.


1

Đối với tôi, nó hoạt động với:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

1

Điều làm việc cho tôi là:

  1. Đi tới thư mục cài đặt mysql của bạn
  2. sudo chmod -R 777 data
  3. Sau đó quay lại một thư mục
  4. cd support-files/
  5. sudo ./mysql.server start

Sau đó máy chủ bắt đầu chạy.

Nhưng vấn đề với phương pháp này là tôi phải lặp lại điều này mỗi khi tôi muốn khởi động mysql ngay bây giờ. Không biết tại sao nó bắt đầu hoạt động như thế này đột ngột.


1

Tìm tệp usr / local / var / mysql / your_computer_name.local.err và hiểu thêm thông tin về lỗi

Vị trí: /usr/local/var/mysql/your_computer_name.local.err

Có thể vấn đề với quyền

  1. Tìm nếu mysql đang chạy và giết nó

ps -ef | grep mysql

giết -9 PID

trong đó PID là giá trị cột thứ hai 2. kiểm tra quyền sở hữu của mysql

ls -laF / usr / local / var / mysql /

if it is owned by root, change it mysql or your user name

sudo chown -R mysql / usr / local / var / mysql /


1

Hãy thử cái này (OSX)

Bước 1: ps -aux | grep mysql

Sau đó giết số PID 4 chữ số

Bước 2: kill 1965

Bước 3: mysql.server start

Hoặc gặp khó khăn trong việc xác định các số PID đó, hãy thử cách này bên dưới

Bước 1 lại: ps -aux | grep mysql

Bước 2 một lần nữa: killall

Bước 3 một lần nữa: mysql.server start


1

Vui lòng kiểm tra nhật ký, bạn sẽ nhận được thông tin chi tiết hơn.

Sử dụng lệnh dưới đây để điều chỉnh nhật ký lỗi

tail -100 /usr/local/var/mysql/<user_name>.local.err

Đối với tôi, một trong những thư mục bị thiếu, khi đã tạo máy chủ đã bắt đầu.


1

Bí quyết chính là kiểm tra tệp .err, theo mặc định trên Mac OSX, tệp này nằm trong /usr/local/var/mysql .

Nhật ký đó được nộp cho tôi biết rằng tôi phải xóa các tệp sau:

ibdata1
ib_logfile0
ib_logfile1

Chạy MySQL với mysql.starthoạt động thành công sau đó. Lưu ý rằng việc xóa các tệp đó có thể sẽ làm mất dữ liệu.


0
sudo chmod -R 777 /usr/local/var/mysql/

làm việc cho tôi.


0

Tôi gặp vấn đề tương tự:

Nhưng tình hình là, mỗi khi tôi cố gắng nhập:

/usr/local/mysql/support-files/mysql.server start

một tệp có tên localhost.pidđược tạo thay vì iMax0.local.pidđược nêu trong lỗi:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

Giải pháp phù hợp với tôi là sao chép localhost.pidvà đổi tên nó thành iMax0.local.pid.


0

Giải pháp của tôi trên OSX El Capitan là:

sudo chmod ugo+w /tmp

Nó bị hỏng đột ngột.

Lỗi là:

ERROR! The server quit without updating PID file

và nhật ký cho thấy:

Can't start server : Bind on unix socket: Permission denied

Cũng có thể hữu ích khi lưu ý rằng trong OSX không có my.cnftệp nào theo mặc định và không cần thiết theo mặc định, mà tôi không biết. Chúc may mắn!



0

Tôi đã có vấn đề tương tự. Nhưng các lệnh sau đã cứu tôi.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Đây là vấn đề về quyền đối với tệp. Kiểm tra quyền và sửa chữa ổ đĩa.

Osx => Cmd + Space => Disk Utilty => Verify Disk Permissions.

Xác minh hoàn tất sau khi Sửa chữa quyền trên đĩa. Lệnh bắt đầu mysql.server đã hoạt động thành công.


Điều này đã làm việc cho tôi. Vui lòng thử điều này trước khi làm bất cứ điều gì khác.
kamlesh

0

Không có câu trả lời nào phù hợp với tôi. Tuy nhiên, tôi chỉ đơn giản là làm sudo mysql.server startvà nó hoạt động tốt.

Ngoài ra, đối với tôi, nó KHÔNG hiển thị vấn đề về quyền trong tệp * .err.


0

Tôi gặp sự cố này trên Linux, nhưng nguyên nhân có liên quan đến bất kỳ cài đặt mysql nào. Trong trường hợp của tôi, máy chủ đã bị lỗi trước khi khởi động hoàn tất và tệp pid được cập nhật. Các thông báo lỗi được nhìn thấy khi khởi động mysqld trực tiếp thay vì thông qua "dịch vụ mysql start".

Trong trường hợp của tôi, nguyên nhân là do phân vùng chứa các tệp nhật ký bị đầy. Xóa tệp nhật ký cho phép mysql bắt đầu lại. Để kiểm tra vấn đề này, hãy truy cập vị trí của nhật ký hoạt động mysql của bạn và thực hiện df ..


0

Nếu bạn đã nâng cấp cài đặt mysql của mình lên 8.x, hãy kiểm tra xem phiên bản trước của bạn có được hỗ trợ nâng cấp hay không .

Nếu không, mysql sẽ không hoạt động! Gỡ cài đặt mysql của bạn cùng với tất cả các tệp cấu hình trong /usr/local/var/mysql(xóa toàn bộ thư mục). Cài đặt lại mysql.

LƯU Ý: cài đặt lại có thể dẫn đến mất dữ liệu.


0

tất cả các giải pháp trên không làm việc cho tôi. nhưng họ cho tôi một số manh mối để sửa lỗi này.

mysql.server start ---- lỗi Máy chủ thoát mà không cập nhật tệp PID

Tôi đã cài đặt mysql@5.7 trên macbook mojave của mình bằng homebrew

pha cài đặt mysql@5.7

Nhật ký lỗi mysql nằm trong /usr/local/var/mysql/IU.lan.err, có một dòng trong đó: Không thể mở và khóa các bảng đặc quyền: Bảng 'mysql.user' không tồn tại

sau khi thử nhiều bài đăng trong công cụ tìm kiếm goole, tôi đã chuyển sang baidu https://blog.csdn.net/xhool/article/details/52398042 lấy cảm hứng từ bài đăng này, tôi đã tìm ra giải pháp:

rm / usr / local / var / mysql / *

mysqld --initialize

mật khẩu ngẫu nhiên cho người dùng root sẽ được hiển thị trong bash. nhưng lệnh mysql -uroot -p [theRandomPassword] không thể hoạt động. vì vậy tôi phải đặt lại mật khẩu. tạo một tệp init có nội dung như thế này

ĐẶT MẬT KHẨU CHO 'root' @ 'localhost' = PASSWORD ('MyNewPass');

đặt nó vào bất kỳ thư mục nào dễ tìm, chẳng hạn như Desktop

mysqld --init-file = [YourInitFile] &

nhiều bản ghi được in trên màn hình của bạn.

mysql -uroot -pMyNewPass

tận hưởng mysql phiên bản cao của bạn!


0

Đã xảy ra với tôi vì tôi thực sự đang chuyển từ MariaDB sang Mysql. Chuyển trở lại MariaDB đã giải quyết được điều này.

Tôi đoán cơ sở dữ liệu hiện có không tương thích.


Đây cũng là vấn đề của tôi, tôi đã chuyển từ MariaDB sang MySQL. Nhưng chuyển trở lại MariaDB không phải là một giải pháp chấp nhận được. Tôi đã xóa mysql mới brew uninstall mysql@8.0sau đó xóa thư mục mysql cũ được tạo bởi MariaDB sudo rm -rf /usr/local/var/mysql(điều này rõ ràng sẽ xóa cơ sở dữ liệu của bạn). Sau đó brew install mysql@8.0mysql.server startvà nó hoạt động.
antriver

0

Đã giải quyết vấn đề này bằng cách sử dụng sudo chown -R _mysql:_mysql /usr/local/var/mysql Cảm ơn Matteo Alessani


0

Lỗi này có thể thực sự được hiển thị vì mysql đã được khởi động. Hãy thử xem tình trạng hiện tại bằng cách:

mysql.server status

Tôi đã luôn giải quyết vấn đề này khi xóa các tệp nhật ký, nhưng psthực tế đã hiển thị các quy trình mysql. Tôi đã giết mọi thứ chạy lại mysql.server restartvà nó hoạt động!
ĂN
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.