sql >> Databasteknik >  >> RDS >> Mysql

Mycket ihållande /opt/lampp/bin/mysql.server:264:kill:Ingen sådan process. Xampp/ubuntu 16.04

Så det här är ett mycket komplicerat problem.

För utifrån det du beskrev (mycket detaljerat) finns det fortfarande många möjliga orsaker till detta problem.

FRÅGA: Så här är några frågor sammanfattade för din (från min erfarenhet):

  1. Körs inte din MySQL not running hände under din första start (xampp start / xampp startmysql)?
  2. När du har installerat xampp i Linux, har du anpassat MySQL-konfigurationen (standard etc/my.cnf)?
  3. OM ANPASSAD Anpassade du din databaskatalog till en annan plats (standard /opt/lampp/var/mysql)?
  4. OM INTE ANPASSAD Som du nämnde har du åtkomst till mysql-kommandoraden, har du försökt SQL din databas, eller om databasen inte ens var tillgänglig (vilket betyder att mysql-servern, som heter mysqld, inte startade ordentligt)?
  5. Har du personligen initierat/installerat en mysql-databas (default bin/mysql_install_db)?Ok, dessa frågor ovan bör ge en grundläggande problemlösningsidé.

LÖSNING:

1. felloggproblem

Så det här borde vara det enklaste problemet, och det kan hjälpa oss att bättre identifiera felorsakerna.

Kontrollera

a) i MySQL-konfiguration (my.cnf) vad är din köranvändare? detta bör vara en parameter under [mysqld] user=... (standard mysql), vi antar att vår konfiguration är inställd på mysql

b) har du ett konto för att köra användarförsök terminalkommandot id -u mysql , om det returnerar ett id-nummer, så finns kontot, annars bör det tala om för dig no such user . Du måste ha den här användaren för att köra mysql-server och skriva fellogg (genom att titta på den andra delen av din terminalpost bör ditt konto finnas)

c) kontrollera din MySQL-konfiguration (my.cnf) felloggplats, den bör vara under [mysqld] som en parameter log-error=... om detta inte skrivs, lägg till det (måste vara under [mysqld]).

d) kontrollera varje katalog i din logg fullständiga sökväg som (till exempel /var/log/mysql/error.log)

  • /var bör ha read och execute auktoritet för mysql-användare (vilket är minst ******r-x) passera skapa fil (köra) auktoritet
  • /var/log bör ha read och execute auktoritet för mysql-användare (vilket är minst ******r-x) passera skapa fil (köra) auktoritet
  • /var/log/mysql bör ha read , write och execute auktoritet för mysql-användare (som är ******rwx) skapa och skriva filbehörighet

För att din error.log-fil ska kunna skapas här, om den fortfarande inte fungerar, försök skapa den manuellt med ägare som mysql, grupp som mysql och auktoritet 660.

2. MySQL-serverns körstatus

det finns flera sätt att kontrollera detta

a) använd mysql.server (default bin/mysql.server) för att göra mysql.server status kommando. Om din MySQL-server är igång bör den visa FRAMGÅNG! MariaDB körs.

b) använd top kommando för att kontrollera om tjänsten körs, eller använd top | grep "mysqld" . mysqld och mysqld_safe bör i den.

c) logga in på mysql-kommandoraden precis som du gjorde i terminalpost 4 (detta fungerar del) och gör kommandot SHOW DATABASES; detta borde också fungera.

3. Anpassad databasplats orsakar att Xampp mysql inte körs status Detta är ett mycket djupare problem, eftersom jag har bekräftat att MySQL-servern fungerar korrekt.

Det gjorde jag

[[email protected] ~]# /opt/lampp/xampp status
Version: XAMPP for Linux 7.4.1
Apache is running.
MySQL is not running.
ProFTPD is running.
[[email protected] ~]# /opt/lampp/bin/mysql.server status
SUCCESS! MariaDB running (xxxx)

Så det här visar att xampp hämtar tjänststatus felaktigt (som ett annat inlägg MySQL-databas startar på terminal men inte på XAMPP )

Jag kunde spåra i detalj hur xampp fungerar, men i /opt/lampp/xampp skriptfil, hittade jag /opt/lampp/share/xampp/status och /opt/lampp/share/statusraw

Gå längre in i det (båda /opt/lampp/share/xampp/status och /opt/lampp/share/statusraw fil),

 /opt/lampp/var/mysql/` /bin/hostname`.pid mysqld

Eftersom min databas anpassades till lokaliserad katalog betyder det att pid-filen inte kommer att finnas i /opt/lampp/var/mysql , och denna status kommer alltid att returneras felaktigt.

Så att ändra detta till min egen databas pid-plats löste problemet.



  1. Logga poständringar i SQL-server i en granskningstabell

  2. ta bort entiteter i kaskad som inte fungerar i ManyToMany-relationen

  3. kan jag återställa auto_increment-fältet i mySql?

  4. COLLATION() Funktion i Oracle