ข้อผิดพลาดในการเริ่มต้นเซิร์ฟเวอร์ MySql 'เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ PID'


284

บน Snow Leopard การเริ่มต้น MySQL ให้ข้อผิดพลาดต่อไปนี้:

เซิร์ฟเวอร์หยุดทำงานโดยไม่อัปเดตไฟล์ PID

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

7
ทำงานเป็นผู้ใช้ผู้ดูแลระบบ ด้วย sudo /usr/local/mysql/support-files/mysql.server เริ่มต้น
Chinmay

6
ปัญหาเดียวกัน. ติดตั้ง mysql ด้วย brew
vrybas

20
ปัญหาเดียวกันที่นี่ ติดตั้งยังกับชง
jspooner

11
ฉันได้รับกรณีนี้เช่นกันบน mac ของฉันและเพิ่งลบบันทึกข้อผิดพลาดเช่น '/usr/local/var/mysql/*.err' เริ่มต้นได้สำเร็จ
Mathew P. Jones

3
ฉันยังมีข้อผิดพลาดเดียวกันบน mac แต่ฉันได้แก้ไขแล้ว หากคุณติดตั้งผ่านไฟล์. dmg ให้ไปที่การตั้งค่าระบบจากนั้นคลิกที่ไอคอน mysql จากนั้นคลิกที่ปุ่มเริ่ม mysql
Amaranadh Meda

คำตอบ:


276

ลองค้นหาไฟล์บันทึกของคุณด้วยคำลงท้าย ".err" ควรมีข้อมูลเพิ่มเติม มันอาจจะอยู่ใน:

/usr/local/var/mysql/your_computer_name.local.err

มันอาจมีปัญหากับการอนุญาต

  1. ตรวจสอบว่าอินสแตนซ์ mysql ใด ๆ กำลังทำงานอยู่

    ps -ef | grep mysql

    ถ้าใช่คุณควรหยุดหรือฆ่ากระบวนการ

    kill -9 PID

    โดยที่PIDตัวเลขจะปรากฏถัดจากชื่อผู้ใช้ในผลลัพธ์ของคำสั่งก่อนหน้า

  2. ตรวจสอบความเป็นเจ้าของ /usr/local/var/mysql/

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

    ถ้าเป็นเจ้าของโดยrootคุณควรเปลี่ยนmysqlหรือyour_user

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


24
ฉันต้อง chown กับผู้ใช้ mysql มากกว่าผู้ใช้ของฉัน
Jared

3
ทำงานให้ฉัน ฉันตรวจสอบไฟล์ข้อผิดพลาดและบอกว่ามันเป็นเพราะสิทธิ์ของไฟล์ ดำเนินการคำสั่ง chown และทำงาน ขอบคุณ !!
Packet Tracer

2
sudo chown -R my_user / usr / local / var / mysql / ทำงานให้ฉันอย่างน้อย
BjørnBørresen

จากประสบการณ์ของฉันเอง - ระวังให้ดีหลังจากที่คุณทำ sudo chown ที่ปัจจุบันคุณไม่มีกระบวนการ mysql ที่ทำงานภายใต้ผู้ใช้หรือรูทอื่น ps -ef | grep mysql จะตรวจสอบว่าคุณไม่มีอะไรทำงาน - ไม่เช่นนั้นคุณจะไม่สามารถเริ่มได้
Arthur Frankel

1
รวมโปรแกรมช่วยชีวิต ข้อสังเกตเดียวของฉันคือพา ธ ไฟล์ไปยังโฟลเดอร์ mysql อาจแตกต่างกันไป
ALISboa

198

คุณทำตามคำแนะนำจากbrew install mysqlหรือไม่

ตั้งค่าฐานข้อมูลเพื่อเรียกใช้เป็นบัญชีผู้ใช้ของคุณด้วย:

สำหรับ mysql 5.x:

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

หากต้องการตั้งค่าตารางฐานในโฟลเดอร์อื่นหรือใช้ผู้ใช้รายอื่นเพื่อเรียกใช้ mysqld ดูวิธีใช้สำหรับmysqld_install_db:

mysql_install_db --help

และดูเอกสาร MySQL:

สำหรับ mysql 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

ตรวจสอบให้แน่ใจว่าไดเรกทอรีข้อมูล/usr/local/var/mysqlข้างต้นว่างเปล่าสำรองข้อมูลหากจำเป็น

ในการใช้งานตัวอย่างเช่นผู้ใช้ "mysql" คุณอาจต้องsudo:

sudo mysql_install_db ...options...

เริ่ม mysqld ด้วยตนเองด้วย:

mysql.server start

หมายเหตุ: หากสิ่งนี้ล้มเหลวคุณอาจลืมรันสองขั้นตอนแรกขึ้นไปด้านบน


78
หากคุณได้รับข้อผิดพลาดซ้ำหลายครั้งแม้หลังจากทำตามขั้นตอนจากผลลัพธ์แล้วให้ลบไฟล์ * .err ออกจากไดเรกทอรีเดียวกันกับไฟล์ * .pid mahdiyusuf.com/post/21022913180/…
ekillaby

6
ฉันลองทำตามคำแนะนำเหล่านี้เป็นล้านครั้ง แต่ไม่เคยใช้งานเลย ฉันพยายาม "โกง" โดยไม่ทำความสะอาดทุกสิ่งที่หมอชงเตือนฉันเพราะฉันคิดว่าพวกเขาไม่ได้สร้างความแตกต่าง ในท้ายที่สุดการทำความสะอาดและปฏิบัติตามคำแนะนำของผู้ผลิตเบียร์ทำให้สามารถดำเนินการผ่านการตั้งค่าที่อธิบายไว้ข้างต้น ดังนั้นข้อความถึงผู้อื่นที่ผ่านไป อย่าพยายามโกงหมอชงและคิดว่าคุณรู้ดีกว่า!
ช่วง

9
ฉันยังคงมีสิ่งต่าง ๆ ที่ผิดพลาดเมื่อฉันชงหมอและเพิ่มสิทธิ์ในการเขียนให้กับผู้ใช้ของฉันเองก็ทำเคล็ดลับ sudo chown -R your_user /usr/local/var/mysql/เช่นเดียวกับคำตอบของ
@Tombart

1
@countfloortiles ใช่! การลบไฟล์ข้อผิดพลาดทำได้ :-)
ott--

6
mysqld_install_dbคำสั่งให้ฉันข้อผิดพลาดmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
Snowcrash

125

ฉันมีปัญหาเดียวกันในเครื่อง Mac ของฉัน (ทำตามขั้นตอนการติดตั้งทั้งหมดที่แนะนำโดยถูกต้องbrew install)

การลบไฟล์ข้อผิดพลาดคงที่สำหรับฉัน:

sudo rm -rf /usr/local/var/mysql/dev.work.err( dev.workคือชื่อโฮสต์ของฉัน)

สิ่งนี้ทำงานได้เพราะdev.work.errเป็นเจ้าของโดย_mysql:wheelแทนที่จะเป็นชื่อผู้ใช้ของฉันเอง เลือกข้อผิดพลาดไฟล์อาจจะได้รับการแก้ไขเช่นกัน


2
วิธีนี้แก้ไขปัญหาของฉันได้เช่นกันหลังจากรีบูตเครื่อง mysql ไม่สามารถทำงานได้อีกต่อไปทำให้ฉันมีปัญหาเดียวกัน แต่ลบบันทึกข้อผิดพลาดซึ่งเป็นเจ้าของโดย _mysql: ผู้ดูแลระบบแก้ไขปัญหา
user980085

5
สิ่งนี้ดูเหมือนจะมีประโยชน์มากที่สุดทำให้ฉันรู้ว่าฉันไม่ควรเริ่มบริการนี้ด้วย SUDO แต่ใช้ภายใต้บัญชีผู้ใช้ของฉันเอง
Bnjmn

3
นี่เป็นคำตอบที่ดีสำหรับผู้ที่ติดตั้ง MySQL โดยใช้ Homebrew
Stephane Paquet

หลังจากพยายามทำสิ่งต่าง ๆ หลายสัปดาห์เมื่อฉันลบไฟล์ข้อผิดพลาดทุกอย่างก็เริ่มทำงาน ขอบคุณ
DF

ฉันไม่จำเป็นต้องลบออกเพียงแค่นำมันกลับไปที่บัญชีของฉันเพราะมีบัญชี _mysql เข้ามาแทนที่
Sammy Larbi

90

หลังจากรีบูตเครื่องฉันมีปัญหาเดียวกัน นี่คือวิธีที่ฉันแก้ไขมัน:

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

ขอบคุณมาก - อย่าลืมสำรองข้อมูล แต่ในกรณีที่คุณกำลังล้อเล่นกับสิทธิ์
m02ph3u5

ขอบคุณ ฉันมีปัญหากับ Lampp ใน Ubuntu ฉันคัดลอกโฟลเดอร์ lampp ทั้งหมดจาก / เลือกไปยังเซิร์ฟเวอร์ใหม่ เมื่อฉันพยายามที่จะเริ่มต้น mysql ฉันได้รับข้อความ: เซิร์ฟเวอร์ออกโดยไม่ปรับปรุงไฟล์ PID ไปที่ lampp / var / และทำ chown -R mysql mysql / นั่นใช้ได้สำหรับฉัน!
เดฟ

6
ขอบคุณคุณคือฮีโร่ของฉัน;)
Fareed Alnamrouti

ขอบคุณมากเพื่อน! บันทึกวัน!
Masiar

8
ใน El Capitan งานนี้:sudo chown -R _mysql /usr/local/mysql/data
Justin

33

สิ่งนี้ใช้ได้กับฉัน ...

ตรวจสอบกระบวนการ MySQL ทั้งหมดที่ทำงานอยู่:

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

จากนั้นฆ่ากระบวนการทั้งหมดที่แสดงรายการจากคำสั่งด้านบนโดยใช้สิ่งต่อไปนี้

$ sudo kill -9 [PID]

แทนที่[PID]ด้วยบุคคล PID 5970จากรายการดังกล่าวข้างต้นเช่น

ทำเช่นนั้นสำหรับทุกบรรทัดที่คุณเห็นด้วยคำสั่งแรก

จากนั้นคุณสามารถเริ่มต้นเซิร์ฟเวอร์ MySQL ของคุณอีกครั้ง:

mysql.server start

หรือใช้pkill mysqlเพื่อฆ่ากระบวนการทั้งหมดที่ตรงกับ "mysql" ( -9ไม่จำเป็นในกรณีส่วนใหญ่)
bfontaine

เพื่อดำเนินการ killall ด้วยรหัสเฉพาะและเริ่มต้นใหม่อีกครั้ง
Anupam Maurya

26

ข้อผิดพลาดนี้สามารถเกิดขึ้นได้เมื่อพยายามเริ่ม msql หลังจากปิดระบบไม่ถูกต้อง

  1. ลองดูที่ไฟล์บันทึกข้อผิดพลาด mysql ถ้ามันพูดถึงบางอย่างเช่น"ตรวจสอบว่าคุณยังไม่มีกระบวนการ mysqld อื่นโดยใช้ข้อมูลหรือไฟล์บันทึกเดียวกัน" จากนั้นคุณต้องปิดกระบวนการอย่างถูกต้อง

  2. ดูว่ากระบวนการ mysql กำลังทำงานอยู่ใช้คำสั่งนี้: lsof -i:3306

ผลลัพธ์ของคุณควรมีลักษณะเช่นนี้:

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  4249 username   17u  IPv4 0x7843d9d130469c0b      0t0  TCP localhost:mysql (LISTEN)
  1. ยุติกระบวนการที่รัน mysql: kill -15 4249

สังหาร -15 ส่ง siganl ไปยังกระบวนการเพื่อเพิ่มทรัพยากรใด ๆ ที่มันถูกล็อคและยุติกระบวนการหลังจากนั้น

  1. ตอนนี้ mysql ควรเริ่มต้นโดยไม่มีปัญหา: mysql.server start

นี่ยังใช้ได้สำหรับฉันใน High Sierra สำหรับสิ่งที่คุ้มค่า
Jonathan Stegall

24

ไฟล์ข้อผิดพลาดของฉันบอกฉันด้วยว่ากระบวนการอื่นอาจใช้พอร์ตอยู่ แต่การเรียกใช้เพียงแค่sudo mysql.server startแก้ไขปัญหาให้ฉันได้


ใช่ ... นี้ทำงานให้ฉันเกินไป ... และไม่มีอะไรทำงานข้างต้น
Prashant

ฉันได้ทำตามคำแนะนำฉันได้อ่านวิธีเริ่มต้น MySQL บน Mac เป็น 'sudo /usr/local/mysql/support-files/mysql.server start' นั่นทำให้เกิดข้อผิดพลาด "เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ pid" และนั่นคือวิธีที่ฉันได้มาที่หน้านี้ หลังจากลองคำตอบมากมายฉันพบว่า 'sudo mysql.server start' และใช้งานได้ ขอบคุณ
rodmclaughlin

19

ลองลบib_logfile0และib_logfile1ไฟล์แล้วเรียกใช้ mysql อีกครั้ง

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

มันใช้งานได้สำหรับฉัน


1
ฉันยังลบ.errไฟล์ในไดเรกทอรีเดียวกันซึ่งใช้งานได้สำหรับฉัน
Anthony ถึง

ดี. นี่เป็นเรื่องง่ายและใช้งานได้จริงสำหรับฉัน แต่ในกรณีของฉันฉันแค่เปลี่ยนชื่อเป็นib_log*.bak
mochadwi

18

ถ้าไม่มีคำตอบหนึ่งช่วยให้คุณเพียงแค่ลบโฟลเดอร์/usr/local/var/mysqlแล้วติดตั้ง MySQL brew reinstall mysqlอีกครั้ง


9
คำเตือนนั่นหมายถึงลบฐานข้อมูลทั้งหมด
theredled

ฉันติดตั้ง mysql รุ่นที่สูงกว่าก่อนหน้านี้ฉันติดตั้ง mysql5.7 และปัญหานี้เกิดขึ้น เพียงลบ / usr / local / var / mysql แล้วbrew reinstall mysql@.57แก้ปัญหา
เพกาซัส

ย้าย dbs ใต้ / usr / local / var / mysql ไปยังโฟลเดอร์อื่นก่อน หลังจากติดตั้งและเริ่มบริการ mysql สำเร็จให้ลองย้ายฐานข้อมูลที่จำเป็นกลับมา
civic.LiLister

15

ฉันเพิ่งเจอปัญหานี้ แต่มันก็ทำงานก่อนแล้วก็หยุด

เป็นอย่างนี้เพราะผมเริ่มเริ่มmysql.serverเป็นรากแทนตัวเอง

การแก้ไขคือการลบไฟล์บันทึกข้อผิดพลาด (ซึ่งเป็นของ_mysql) เริ่มต้นอีกครั้งมันผ่านไปแล้ว


ขอบคุณ! ฉันมีปัญหาเดียวกันกับการค้นหาชั่วโมงแล้วเจอคำตอบของคุณ
FLY

11

สำหรับฉันฉันต้องติดตั้ง mysql ใหม่

brew reinstall mysql

จากนั้นด้านล่างเพื่อให้มีการเปิดตัว start mysql ตอนนี้และรีสตาร์ทที่เข้าสู่ระบบ:

brew services start mysql

10

วิธีแก้ปัญหาสำหรับฉันอยู่ที่นี่: /server/334284/cant-create-pid-file-on-mysql-server-permission-denied

การเปลี่ยนการอนุญาตของฉันดูเหมือนจะเป็นการหลอกลวง ฉันใช้งาน Macbook Air รุ่น Mid-2012 กับ OS X 10.8.2 และติดตั้ง mysql ด้วย homebrew

chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*

10

สำหรับฉันการแก้ไขง่าย ๆ :

top

แสดงให้เห็นว่า mysqld ทำงานอยู่แล้ว

sudo killall mysqld 

จากนั้นอนุญาตให้กระบวนการเริ่มต้น


8

ฉันมีปัญหานี้ขณะพยายามอัพเกรดการอัพเกรดบน MacOS X 10.7.5

น่าเสียดายที่ mysql ได้รับการอัพเกรดเป็น 5.6.10 จาก 5.5.14 พยายามใหม่ไม่ได้ทำงาน

ฉันตัดสินใจกลับไปที่การตั้งค่าเดิมของฉันและทำ

brew switch mysql 5.5.14

สิ่งนี้ไม่ได้แก้ปัญหา ที่อื่นฉันอ่านแล้วก็ทำนี่ voila! ทุกอย่างกลับมาแล้ว :)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

สิ่งนี้ใช้ได้กับฉันหลังจากใช้งานครั้งแรกbrew upgrade mysqlแล้วbrew switch mysql 5.7.17ซึ่งเป็นรุ่นก่อนหน้าของฉัน แปลก!
Jorge Orpinel

7

ฉันกำลังใช้,

ฉันติดตั้ง MySQL โดยใช้ homebrew ('ชงติดตั้ง mysql') มันติดตั้งสองสามพึ่งพาแล้ว mysql

เมื่อฉันพยายามเริ่มมัน

west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

ฉันรันคำสั่งนี้

west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

และ MySQL ทำงานได้

โปรดจำไว้ว่าคุณต้องเรียกใช้ mysql_install_db จากไดเรกทอรีระดับบนสุดของ mysql (IE, usr / local / Cellar / mysql / 5.5.25) การรันโดยตรงภายในไดเร็กทอรี / สคริปต์ไม่ได้ให้บริบทเพียงพอสำหรับการรัน


ทำงานให้กับฉันด้วย 5.5.28 และชงบน OSX 10.7.5
ch3rryc0ke

7

สำหรับฉันทางออกคือการแทนที่ / แก้ไขไดเรกทอรีข้อมูลใน / etc / my / cnf

ฉันสร้าง MySQL 5.5.27 จากแหล่งที่มาพร้อมกับคำแนะนำในไฟล์ readme:


# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &

# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysqld_safe ยุติตัวเองโดยไม่มีคำอธิบาย การทำงาน/etc/init.d/mysql.server startทำให้เกิดข้อผิดพลาด:

"เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ PID"

ฉันสังเกตเห็นบางสิ่งแปลก ๆ ในคำแนะนำการติดตั้ง มันเป็นเจ้าของได้เปลี่ยนเป็น mysql สำหรับไดเรกทอรี "data" แต่ไม่ใช่ "var"; นี่เป็นเรื่องผิดปกติเพราะเป็นเวลาหลายปีที่ฉันต้องทำให้แน่ใจว่าไดเรกทอรี var เป็น mysql ที่สามารถเขียนได้ ดังนั้นฉันจึงวิ่งด้วยตนเองchown -R mysql /usr/local/mysql/varแล้วพยายามเริ่มใหม่อีกครั้ง ยังไม่มีโชค แต่แย่กว่านั้นคือไม่มีไฟล์ .err ใน var dir - มันอยู่ใน "data" dir! ดังนั้นสคริปต์ / mysql_install_db จึงตั้งค่าค่ายใน / usr / local / mysql / var แต่แอปพลิเคชั่นที่เหลือดูเหมือนว่าต้องการทำงานใน / usr / local / mysql / data!

ดังนั้นฉันเพิ่งแก้ไข /etc/my.cnf และภายใต้ส่วน [mysqld] ฉันได้เพิ่มคำสั่งเพื่อชี้ไดเรกทอรีข้อมูลของ mysql ไปยัง var (โดยปกติฉันคาดหวังว่ามันจะเป็นอย่างไร) และหลังจากทำเช่นนั้น mysqld ก็จะเริ่มขึ้น ละเอียด. คำสั่งเพื่อเพิ่มมีลักษณะดังนี้:

datadir = / usr / local / mysql / var

ทำงานให้ฉัน หวังว่าจะช่วยคุณได้


5

ดูเหมือนว่ากระบวนการ MySQL กำลังทำงานดังนั้นคุณจึงไม่สามารถใช้พอร์ตได้ คุณสามารถตรวจสอบกระบวนการ MySQL ที่กำลังรันโดยใช้คำสั่งต่อไปนี้:

ps auxf | grep mysql

หากคุณได้รับโปรเซส MySQL ใด ๆ ให้ฆ่า ID กระบวนการนั้นโดยใช้ kill -9 PID จากนั้นลองเริ่ม MySQL


คำตอบนี้เป็นผู้ช่วยชีวิตของฉัน
Sangbeom Han

5

เริ่ม Mysql ในเซฟโหมด

/usr/local/mysql/bin/mysqld_safe start

หรือ

บน MAC สิ้นสุดใด ๆ mysqlหรือmysqldงาน (หรืออื่น ๆ ) ในการประยุกต์ใช้กิจกรรมการตรวจสอบของคุณ

หรือตรวจสอบข้อผิดพลาดโดย

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err

4

บันทึกข้อผิดพลาดพูดว่าอย่างไร ฉันได้รับข้อผิดพลาดนี้และมันเป็นการตั้งค่าที่ไม่ถูกต้องใน my.cnf ซึ่งบันทึกข้อผิดพลาด mysql ระบุ หากไม่ใช่การตั้งค่าที่ไม่ดีบันทึกข้อผิดพลาดอย่างน้อยควรชี้คุณไปในทิศทางที่ถูกต้อง

ฉันคิดว่า OP คงที่ไว้ ณ จุดนี้ ... แต่หวังว่านี่จะชี้ให้คนอื่นเห็นข้อผิดพลาดนี้ในทิศทางที่ถูกต้อง


4

ด้วยความช่วยเหลือของคำตอบเล็ก ๆ น้อย ๆ ที่โพสต์ที่นี่ฉันสามารถค้นหาปัญหาได้

ครั้งแรกที่ฉันวิ่ง

sudo -i

ดังนั้นฉันสามารถเข้าถึงรูตได้

กว่าที่ฉันจะลบไฟล์ xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

หลังจากฉันเริ่ม MySQL ใน SafeMode

/usr/local/mysql/bin/mysqld_safe start

มันจะพยายามเริ่มต้นและจะออกเนื่องจากข้อผิดพลาด ... ไฟล์ xxx.err ใหม่จะถูกสร้างขึ้นและคุณต้องอ่านเพื่อดูสาเหตุของข้อผิดพลาด

tail -f /usr/local/mysql/data/mysqld.local.err

ในกรณีของฉันด้วยเหตุผลบางอย่างมันหายไปบางโฟลเดอร์และไฟล์ภายใน/var/log/โฟลเดอร์ ... ดังนั้นฉันจึงสร้างทั้งสอง

cd /var/log

mkdir mysql

touch mysql-bin.index

หลังจากสร้างไฟล์ใหม่แล้วคุณต้องเปลี่ยนการอนุญาต

chown -R _mysql /var/log/mysql

เมื่อทุกขั้นตอนเหล่านั้นเกิดขึ้นฐานข้อมูลของฉันก็เริ่มทำงานได้ทันที ...

หวังว่านี่จะช่วยผู้อื่นได้ที่นี่ ... กุญแจสำคัญคือการอ่านข้อผิดพลาดและบันทึกและค้นหาว่ามีอะไรผิดปกติ ...


4

ในกรณีของฉันข้อผิดพลาดเกิดขึ้นเนื่องจากปัญหาการเข้าถึงไฟล์บันทึกข้อผิดพลาด

คำสั่งสองคำสั่งต่อไปนี้ช่วยฉันแก้ไขปัญหา

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err

3

ฉันหวังว่างานนี้สำหรับคุณ

หลังจากตรวจสอบบันทึกข้อผิดพลาดฉันพบสิ่งนี้:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  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 /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

และเพื่อแก้ปัญหาฉันให้สิทธิ์ความเป็นเจ้าของแก่ทั้งโฟลเดอร์ mysql:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

จากนั้น (คุณสามารถใช้บรรทัดคำสั่งได้เช่นกัน) ฉันใช้การอนุญาต (เมื่อฉันให้สิทธิ์ผู้ใช้กับผู้ใช้_mysqlและmysql ) กับโฟลเดอร์ที่ปิดล้อมทั้งหมดจากภายในเมนู "รับข้อมูล" ของโฟลเดอร์ที่/ usr / local / mysql -5.5.21-osx10.6-x86_64 คุณไม่จำเป็นต้องทำเช่นนั้นกับนามแฝงเพราะมันเป็นเพียงนามแฝง

ชื่อของโฟลเดอร์ขึ้นอยู่กับเวอร์ชันการติดตั้งของ mysql ที่คุณมี


3

ผมมีปัญหาเหมือนกัน. การย้ายไฟล์ /etc/my.cnf ของฉันใช้งานได้สำหรับฉัน ฉันได้รับข้อมูลที่นี่


3

มีปัญหาเดียวกันสำหรับฉันมันกำลังทำการลบการชงขณะที่มีการติดตั้ง mysqld ก่อนหน้านี้ที่ทำงานอยู่ ชงดูเหมือนไม่หยุดบริการก่อนที่จะถอนการติดตั้ง

หลังจากตรวจสอบไฟล์ .err ฉันเห็นข้อผิดพลาดที่บันทึกว่าสำเนาอื่นของ mysql อาจทำงานหลังจากยกเลิกบริการเก่า ฉันสามารถเริ่มการติดตั้ง mysql ใหม่ได้


ใช่ตรวจสอบบันทึกข้อผิดพลาด ในกรณีของฉันฉันวิ่งls -latr /usr/local/var/mysql/ไปหาไฟล์ที่แก้ไขล่าสุดซึ่งรวมถึงบันทึกข้อผิดพลาดจากนั้นtail -50 name.errเพื่อดูข้อผิดพลาดซึ่งเป็นปัญหาในการกำหนดค่า
mahemoff

ขอบคุณพระเจ้าคุณพูดถูก ฉันใช้ps aux | grep mysqldแล้วยุติกระบวนการด้วยkill -9 [proccessid]และเซิร์ฟเวอร์เริ่มต้นได้สำเร็จ
Sagish

3

ง่าย ....

แก้ไขข้อผิดพลาด 2002 MySQL Socket

แก้ไขข้อผิดพลาดซ็อกเก็ต 2002 ที่ปรากฏ - ซึ่งเชื่อมโยงตำแหน่งที่ MySQL วางซ็อกเก็ตและที่ที่ OSX คิดว่าควรจะเป็น, MySQL วางไว้ใน / tmp และ OSX ค้นหามันใน / var / mysql ซ็อกเก็ตเป็นไฟล์ประเภทหนึ่งที่ช่วยให้ลูกค้า mysql การสื่อสารเซิร์ฟเวอร์ /

sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

ทำได้ดี : )

สิ่งนี้ช่วยฉันได้มาก! ฉันเอาคู่มือนี้มาจากพวกที่http://coolestguidesontheplanet.com/


3

ลองนี้ ..

  1. นำทางไปยังไดเรกทอรีหลักของปัญหา cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (ลบไฟล์)
  3. touch YOURUSERNAME.local.pid (สร้างไฟล์ * .local.pid ใหม่ที่มีข้อผิดพลาดเกิดขึ้น)
  4. cd กลับเข้าสู่โครงการของคุณและเริ่มใช้ mysql ใหม่ mysql.server start

1
สิ่งนี้ใช้ได้สำหรับฉัน เหตุผลที่ถูกerror.logไฟล์เป็นเจ้าของโดย "_mysql" โยนข้อผิดพลาดในบันทึก แค่อยากจะบันทึกว่าใครก็มีปัญหานี้ 150818 19:32:06 mysqld_safe Logging to '/opt/boxen/log/mysql/error.log'. 150818 19:32:06 mysqld_safe Starting mysqld daemon with databases from /opt/boxen/data/mysql /opt/boxen/homebrew/bin/mysqld_safe: line 129: /opt/boxen/log/mysql/error.log: Permission denied
โดโนแวน

วิธีนี้ใช้ไม่ได้หากปัญหาของคุณเกี่ยวข้องกับการอนุญาตซึ่งจะทำให้เกิดข้อผิดพลาด mysql เดียวกัน
mpoletto ถึง

ทำงานให้ฉันเช่นกัน ฉันยังต้องรีสตาร์ท apache ของฉัน (สำหรับผู้ที่ใช้ LAMP stack ด้วย)
Tommyixi

3

อย่างใดฉันก็เมาสิทธิ์ของฉันใน El Capitan และตัดสินใจที่จะติดตั้ง MySQL จากรอยขีดข่วน

ฉันใช้ชงกับ el capitan และตัดสินใจติดตั้งใหม่:

brew uninstall mysql
sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS

สิทธิ์ของไฟล์ในการติดตั้งใหม่เปลี่ยนจาก_mysqlเป็นชื่อผู้ใช้ของฉัน

 ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc

2

ตรวจสอบว่าคุณมีพื้นที่เหลืออยู่ในไดรฟ์ของคุณหรือไม่ ฉันพบปัญหานี้เมื่อไม่มีพื้นที่เหลือในไดรฟ์


ฉันไม่เคยคิดเกี่ยวกับปัญหาพื้นที่ถ้าคุณไม่ได้พูดถึง คุณเป็นผู้กอบกู้!
Kshitij Bajracharya

2

ปัญหาคือสิทธิ์หนึ่งมันไม่สามารถเริ่มเพราะมันไม่สามารถเขียนถึง mac.err เพราะมันเป็นของคนอื่น

ตรวจสอบให้แน่ใจว่าโฟลเดอร์ / usr / local / var / mysql เป็นของผู้ใช้ที่จะเริ่ม mysql ถ้าฉันเริ่ม mysql เป็นแจ็คมันก็ดี อย่างไรก็ตามหากคุณเริ่มต้นเป็นรูทไฟล์จะสร้างไฟล์ mac.err (เป็นเจ้าของโดยรูท) ที่แจ็คไม่สามารถเขียนได้ดังนั้นเมื่อคุณพยายามเริ่มต้นใหม่เนื่องจากแจ็คจะไม่สามารถใช้งานได้

  1. ให้แน่ใจว่าโฟลเดอร์และไฟล์เป็นของผู้ใช้ที่รัน mysql.server
  2. ตรวจสอบให้แน่ใจว่าไม่มีคนอื่นเป็น mac.err หรือ mac.pid
  3. เริ่มต้นเป็นผู้ใช้ที่เหมาะสม

ฉันใช้ chown -R <user_name> / usr / local / var / mysql และใช้งานได้ดี ทางออกที่ดี
mbokil

2

ในกรณีของฉันฉันได้รับปัญหานี้ในvps, cPanelcPanel

ฉันลองคำตอบข้างต้นส่วนใหญ่แล้ว แต่ไม่ประสบความสำเร็จ

  1. ตรวจสอบที่บันทึกข้อผิดพลาดของคุณ มันจะถูกกล่าวถึงในตอนท้ายของบรรทัดข้อผิดพลาด

ข้อผิดพลาด! เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ PID (/var/lib/mysql/111318.vps-11.com.pid)

  1. เปิดไฟล์นั้น (/var/lib/mysql/111318.vps-11.com.err) และตรวจสอบด้านล่างเพื่อดูบรรทัด ในกรณีของฉันมี

[ข้อผิดพลาด] ข้อผิดพลาดร้ายแรง: ไม่สามารถเปิดและล็อคตารางสิทธิ์: ตาราง './mysql/db' ถูกทำเครื่องหมายว่าขัดข้องและควรได้รับการซ่อมแซม

  1. วิธีแก้ปัญหานี้: การกู้คืนและแก้ไขดัชนีตารางตามคำสั่ง:

[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (อีกครั้ง) เริ่ม mysql ของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.