sql >> Database teknologi >  >> RDS >> Mysql

Meget vedvarende /opt/lampp/bin/mysql.server:264:kill:Ingen sådan proces. Xampp/ubuntu 16.04

Så dette er et meget kompliceret problem.

Fordi ud fra det du beskrev (meget detaljeret), er der stadig mange mulige årsager til dette problem.

SPØRGSMÅL: Så her er nogle spørgsmål opsummeret til din (fra min erfaring):

  1. Kører din MySQL not running skete under din første opstart (xampp start / xampp startmysql)?
  2. Når du har installeret xampp i Linux, har du så tilpasset MySQL-konfigurationen (standard etc/my.cnf)?
  3. HVIS TILPASSET Har du tilpasset din databasemappe til en anden placering (standard /opt/lampp/var/mysql)?
  4. HVIS IKKE TILPASSET Som du nævnte, har du adgang til mysql-kommandolinjen, har du prøvet at SQL din database, eller hvis databasen ikke engang var tilgængelig (hvilket betyder, at mysql-serveren, kaldet mysqld, ikke startede korrekt)?
  5. Har du personligt initialiseret/installeret en mysql-database (default bin/mysql_install_db)?Ok, ovenstående spørgsmål bør give en grundlæggende fejlfindingside.

LØSNING:

1. fejllog problem

Så dette burde være det enkleste problem, og det kunne hjælpe os til bedre at identificere fejlårsagerne.

Tjek

a) i MySQL-konfiguration (my.cnf) hvad er din kørende bruger? dette skal være en parameter under [mysqld] user=... (standard mysql), vi antager, at vores konfiguration er sat til mysql

b) har du en konto til at køre bruger prøv terminalkommando id -u mysql , hvis den returnerer et id-nummer, så eksisterer kontoen, ellers skulle den fortælle dig no such user . Du skal have denne bruger til at køre mysql-server og skrive fejllog (ved at se på den anden del af din terminalpost burde din konto eksistere)

c) tjek din MySQL-konfiguration (my.cnf) fejllogplacering, den skal være under [mysqld] som en parameter log-error=... hvis dette ikke er skrevet, skal du tilføje til det (skal være under [mysqld]).

d) tjek hver mappe i din logs fulde sti, der (for eksempel /var/log/mysql/error.log)

  • /var skal have read og execute autoritet for mysql-bruger (som er mindst ******r-x) bestå oprette fil (eksekvere) autoritet
  • /var/log skal have read og execute autoritet for mysql-bruger (som er mindst ******r-x) bestå oprette fil (eksekvere) autoritet
  • /var/log/mysql skal have read , write og execute autoritet for mysql-bruger (som er ******rwx) oprette og skrive filautoritet

For at din error.log-fil kunne oprettes her, hvis den stadig ikke virker, så prøv at oprette den manuelt med ejer som mysql, gruppe som mysql og autoritet for 660.

2. MySQL-serverens kørestatus

der er flere metoder til at kontrollere dette

a) brug mysql.server (standard bin/mysql.server) til at udføre mysql.server status kommando. Hvis din MySQL-server kører, skulle den vise SUCCES! MariaDB kører.

b) brug top kommando for at kontrollere, om tjenesten kører, eller brug top | grep "mysqld" . mysqld og mysqld_safe skal i det.

c) log ind på mysql-kommandolinjen ligesom du gjorde i terminalpost 4 (denne fungerer del) og udfør kommandoen SHOW DATABASES; dette burde også virke.

3. Tilpasset databaseplacering forårsager, at Xampp mysql ikke kører status Dette er et meget dybere problem, fordi jeg har bekræftet, at MySQL-serveren kører korrekt.

Det gjorde jeg

[[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å dette viser, at xampp henter tjenestestatus forkert (som et andet indlæg MySQL-database starter på terminal men ikke på XAMPP )

Jeg kunne spore i detaljer, hvordan xampp virker, men i /opt/lampp/xampp script-fil, fandt jeg /opt/lampp/share/xampp/status og /opt/lampp/share/statusraw

Gå længere ind i det (begge /opt/lampp/share/xampp/status og /opt/lampp/share/statusraw fil),

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

Da min database blev tilpasset til lokaliseret mappe, betyder det, at pid-filen ikke vil være i /opt/lampp/var/mysql , og denne status vil altid returnere forkert.

Så at ændre dette til min egen database pid placering løste problemet.



  1. StarJoinInfo i udførelsesplaner

  2. Hvordan får man data fra en mysql-database ved hjælp af javascript?

  3. Hvordan bruger man Alias ​​i Where-klausulen?

  4. Hvordan bruger man JOIN i Yii2 Active Record til relationel model?