ฉันจะเริ่ม / หยุดเซิร์ฟเวอร์ mysql ได้อย่างไร


211

ฉันพยายามค้นหาบทความที่อธิบายวิธีเริ่มต้นและหยุดเซิร์ฟเวอร์ mysql อย่างถูกต้อง

ฉันพบลิงค์นี้: วิธีเริ่ม / หยุดเซิร์ฟเวอร์ MySql บน Ubuntu 8.04 | โลกบล็อกของ Abhi

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

/etc/init.d/mysql start 

แต่ฉันเห็นข้อผิดพลาดนี้

ERROR 1045 (28000) Access denied for user....

หลังจากฉันลองคำสั่งนี้:

sudo /etc/init.d/mysql start

ฉันป้อนรหัสผ่านและอีกครั้งฉันเห็นข้อผิดพลาดเดียวกัน

คำสั่งถัดไป:

sudo /etc/init.d/mysql - root -p start

ผลลัพธ์ใน:

ERROR 1049 (42000) Unknown database 'start'.

และเมื่อฉันเรียกใช้คำสั่งนี้:

sudo service mysql start

ความสำเร็จของเซิร์ฟเวอร์ MySQL เริ่มต้นขึ้น เย็น!

ดังนั้นมีอะไรผิดปกติกับคำสั่งอื่น ๆ ? ทำไมพวกเขาส่งผลให้เกิดข้อผิดพลาด?


3
ในความเป็นจริงแม้กับ sudo มันไม่ได้ผลสำหรับฉัน แต่แล้วฉันพบในสคริปต์คำแนะนำต่อไปนี้: แทนที่จะเรียกใช้สคริปต์ init ผ่าน /etc/init.d ใช้บริการ (8)และมันก็โอเค
Timofey

2
ทิมถูกต้อง ใช้sudo เริ่มต้นบริการ
Ed Manet

โดยทั่วไปคุณสามารถใช้ sudo -l เพื่อดูว่าผู้ใช้เฉพาะของคุณในระบบเฉพาะของคุณได้รับอนุญาตให้ทำอะไรกับ sudo (สิทธิ์ของคุณได้รับการกำหนดค่าใน / etc / sudoers) อย่างไรก็ตามฉันไม่ทราบว่าจะช่วยในกรณีนี้หรือไม่ แก้ไข: เดี๋ยวก่อนไม่เป็นไรข้อผิดพลาดที่ถูกปฏิเสธการเข้าถึงดูเหมือนว่ามาจาก MySQL หรือบางอย่างไม่ใช่ sudo
David Winiecki

คำตอบ:


230

คำสั่งสองคำแรกของคุณไม่ได้ทำงานเหมือนรูทดังนั้นจึงเป็นไปตามที่คาดไว้ คุณจะต้องรูทเพื่อหยุด / เริ่ม mysql

อย่างไรก็ตาม:

sudo /etc/init.d/mysql start

ควรทำงาน. สำหรับฉัน:

kojan:~> sudo /etc/init.d/mysql restart
[sudo] password for chris: 
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

ฉันใช้การรีสตาร์ทแทนที่จะเริ่มเพราะมันทำงานอยู่แล้ว แต่เอฟเฟกต์เหมือนกัน คุณแน่ใจว่าคุณป้อนรหัสผ่านถูกต้องหรือไม่ :) คุณได้แก้ไข sudo config ของคุณแล้วซึ่งจะหยุดการทำงานนี้หรือไม่?

อันนี้..

sudo /etc/init.d/mysql - root -p start

ข้อโต้แย้งนั้นไม่ถูกต้อง สคริปต์ init.d ใช้เวลาเพียงstartหรือstopหรือrestart- เพียงคำเดียวที่บอกว่าต้องทำอย่างไร คุณไม่สามารถให้ข้อโต้แย้งหลายข้อในขณะที่คุณพยายามทำ

อย่างไรก็ตามคำตอบสั้น ๆ คือคำตอบที่คุณต้องใช้จริง ๆ เป็นวิธีที่แนะนำ serviceแทนที่ทุกสคริปต์ init.d serviceเมื่อเวลาผ่านไปดังนั้นคุณควรได้รับเป็นนิสัยของการใช้ หน้าเว็บที่คุณลิงค์นั้นมีอายุ 3 ปีจึงต้องมีเกลือบางส่วน :)


7
ลองใช้บริการ sudo mysql start

2
start mysqlทำงานได้สำหรับฉัน (Ubuntu 12.04.4)
ทิม

3
sudo /etc/init.d/mysql restartรีสตาร์ท MySQL สำหรับฉัน
Edward

6
แล้วsudo systemctl start mysqlสำหรับ Ubuntu 16.04 ขึ้นไปล่ะ?
Ankit Balyan

86

นอกจากนี้ยังช่วยตรวจสอบอีกครั้งว่า "mysql" เป็นชื่อบริการที่ถูกต้อง ในกรณีของฉันมันไม่ได้ ฉันยังคงได้รับการตอบสนองต่อไปนี้: mysql: บริการที่ไม่รู้จักเมื่อทำงาน

service mysql status 

จากนั้นฉันตรวจสอบ /etc/init.d และพบสคริปต์ชื่อ mysqld ซึ่งแสดงรายการชื่อกระบวนการ: mysqld และ prog = mysqld

ดังนั้นฉันก็ทำ

service mysqld status
service mysqld stop
service mysqld start 

และพวกเขาก็ทำงานได้ดี


4
mysql: unrecognized service
Green

7
อย่างน้อยใน 13.10 คุณจะต้องเรียกใช้ด้วยสิทธิ์พิเศษของรูท เช่น "สถานะ mysql บริการ sudo"
Bryce

13
สำหรับ 14.10 ฉันต้องใช้ "mysql" ไม่ใช่ mysql d
redanimalwar

1
unknown job: mysqlเมื่อทำงานไม่มีสิทธิรากก็จะบอกว่า สับสนเล็กน้อย
Blauhirn

Failed to start mysqld.service: Unit mysqld.service not found.
JCarlos

30

สำหรับ Ubuntu 12.10 และใหม่กว่า:

เริ่ม MySQL:

sudo start mysql

รีสตาร์ท MySQL:

sudo restart mysql # The service must be running

หยุด MySQL:

sudo stop mysql # The service must be running

3
stop: Unknown job: mysql
Green

@Green ฉันเพิ่งลองทำสิ่งนี้ (หนึ่งปีต่อมา) และมันยังคงทำงาน นี่คือผลลัพธ์ของฉัน: mysql stop/waiting. คุณต้องรู้ว่าคุณต้องmysqlหยุดการทำงานนี้แล้ว)
Lucio

1
ฮีโร่คุณช่วยชีวิตฉันไว้ mysqld ได้ครอบครองหน่วยความจำเครื่องของฉันมานานแล้ว ฉันลองวิธีการทุกชนิดในการลบ แต่ล้มเหลวทั้งหมดจนกว่าฉันจะได้คำตอบ
Zen

sudo: start: command not found
JCarlos

1
@JCarlos Doapt install upstart
Edward

9

ที่จริงแล้วฉันพบข้อผิดพลาดแปลก ๆ เมื่อฉันติดตั้ง mysql-workbench บนเครื่อง Ubuntu ของฉัน หลังจากนั้นฉันพยายามเริ่มบริการ mysql โดยใช้คำสั่งนี้:

service mysql start

ดังนั้นฉันจึงได้ทางออกที่ไม่ได้ติดตั้งเซิร์ฟเวอร์ MySQL ดังนั้นฉันจึงติดตั้งและแก้ไขปัญหาของฉันแล้ว คำสั่งในการติดตั้ง mysql-server คือ:

sudo apt-get install mysql-server

หลังจากติดตั้งสำเร็จให้เริ่มเซิร์ฟเวอร์ MySQL ดังนี้

service mysql start

4

ฉันมีปัญหาเดียวกันกับ Ubuntu64 และฉันแก้ไขโดยไม่ได้ใช้ systemctl แต่ทำสิ่งนี้แทน:

sudo service mysql restart

หวังว่าคำสั่งนี้จะทำงานให้คุณ


2

อันนี้ควรทำงานกับเซิร์ฟเวอร์ mysql ที่สร้างขึ้นด้วยตนเอง:

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql

2

หลังจากติดตั้ง MySQL บนระบบของคุณให้ทำดังนี้

สถานะบริการ mysql $

ถ้าบริการลงเพียงแค่ทำสิ่งนี้:

$ บริการ mysql เริ่มต้น

และสำหรับการหยุดบริการของฉันที่:

หยุดบริการ mysql $


1
/etc/init.d/mysql startและservice mysql startเหมือนกันทุกประการ
พายุ

1

ฉันติดปัญหาเดิมและถอนการติดตั้งและติดตั้งอีกครั้งโดยทำตามคำสั่งด้านล่าง:

1) sudo apt-get --purge ลบ mysql-server mysql-common mysql-client

2) อัปเดต audo apt && sudo apt dist-upgrade && sudo apt autoremove

3) sudo apt-get install -y mysql-server mysql-client


0

สคริปต์เล็กน้อยที่จะครอบคลุมทั้งสองกรณี [เซิร์ฟเวอร์ที่ทำงาน / เซิร์ฟเวอร์ไม่ได้ทำงาน]:

#!/bin/bash

service mysql restart
if [ "$?" != "0" ]; then
  service mysql start
fi

0

บน Ubuntu 18.04 ซ็อกเก็ตถูกกำหนดไว้ในไฟล์

 /etc/mysql/mysql.conf.d/mysqld.cnf

 socket     = /var/run/mysqld/mysqld.sock

ไดเรกทอรีไม่มีอยู่ดังนั้นฉันสร้างด้วยตนเองดังต่อไปนี้:

sudo mkdir -p /var/run/mysqld

รีสตาร์ท mysql ที่แก้ไขมันสำหรับกรณีของฉันที่นี่

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