MySQL (MariaDB) ne démarre pas

15

J'utilise Arch Linux 4.8.4-1 sur une installation 64 bits. J'ai installé MariaDB via pacman. Quand j'essaye de commencer systemctl start mysqld, ça me donne

Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.

La sortie de systemctl status mariadb.serviceest

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2016-11-02 16:55:12 IST; 3min 6s ago
  Process: 5123 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Process: 5070 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set
  Process: 5067 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 5123 (code=exited, status=1/FAILURE)
   Status: "MariaDB server is down"

Nov 02 16:55:11 pranav-laptop systemd[1]: Starting MariaDB database server...
Nov 02 16:55:12 pranav-laptop mysqld[5123]: 2016-11-02 16:55:12 140082509282496 [Note] /usr/sbin/mysqld (mysqld 10.1.18-MariaDB) starting as process 5
Nov 02 16:55:12 pranav-laptop mysqld[5123]: 2016-11-02 16:55:12 140082509282496 [Warning] Can't create test file /var/lib/mysql/pranav-laptop.lower-te
Nov 02 16:55:12 pranav-laptop mysqld[5123]: [90B blob data]
Nov 02 16:55:12 pranav-laptop systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Nov 02 16:55:12 pranav-laptop systemd[1]: Failed to start MariaDB database server.
Nov 02 16:55:12 pranav-laptop systemd[1]: mariadb.service: Unit entered failed state.
Nov 02 16:55:12 pranav-laptop systemd[1]: mariadb.service: Failed with result 'exit-code'.

Si j'ai besoin de poster autre chose, faites le moi savoir ...

MISE À JOUR: Après avoir essayé le commentaire de Jérémy Munoz, mysql ne démarre toujours pas, mais je reçois un autresystemctl status mariadb.service

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2016-11-02 21:03:24 IST; 4min 7s ago
  Process: 14350 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Process: 14296 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl se
  Process: 14294 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 14350 (code=exited, status=1/FAILURE)

Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412958252224 [ERROR] Could not open mysql.plugin table. Some plugins may be not lo
Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412958235392 [Warning] Failed to load slave replication state from table mysql.gti
Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412362684160 [Note] InnoDB: Dumping buffer pool(s) not yet started
Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412958252224 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' d
Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412958252224 [Note] Server socket created on IP: '::'.
Nov 02 21:03:24 pranav-laptop mysqld[14350]: 2016-11-02 21:03:24 140412958252224 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mys
Nov 02 21:03:24 pranav-laptop systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Nov 02 21:03:24 pranav-laptop systemd[1]: Failed to start MariaDB database server.
Nov 02 21:03:24 pranav-laptop systemd[1]: mariadb.service: Unit entered failed state.
Nov 02 21:03:24 pranav-laptop systemd[1]: mariadb.service: Failed with result 'exit-code'.

MISE À JOUR: Après avoir exécuté mysql_install_db, j'obtiens cette erreur:

FATAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to either run 'make install' to
copy the software into the correct location ready for operation.
If you don't want to do a full install, you can use the --srcddir
option to only install the mysql database and privilege tables

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.

The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db

/etc/mysql/my.cnf

Pranav Nutalapati
la source
Vous semblez manquer d'autorisations pour / var / lib / mysql /
Andrew Smith
Quelles autorisations dois-je définir?
Pranav Nutalapati
chown -R mysql. / var / lib / mysql /
Jérémy Munoz
@ JérémyMunoz J'ai essayé votre solution. Ça ne démarre toujours pas. J'ai mis à jour la question avec la nouvelle erreur.
Pranav Nutalapati
Veuillez montrer votre configuration mysql / mariadb à partir d'un fichier /etc/mysql/my.cnf.
Mikhail Khirgiy

Réponses:

20

Si vous ne disposez d'aucune donnée réelle dans votre base de données, effacez tout /var/lib/mysql.

Après cela, essayez à nouveau d'exécuter la commande mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysqlpour initialiser le répertoire de la base de données.

Mikhail Khirgiy
la source
quelle est la méthodologie de cette réponse?
kittygirl
y a-t-il autre chose à essayer si cela ne fonctionne pas?
moeiscool
@kittygirl Salut, l'objectif de ceci est de recréer la structure de données de MySQL, soit parce qu'elle a été gâchée, soit parce qu'elle n'existait pas. Ou du moins, c'est comme ça que je le comprends.
Pranav Nutalapati
5

Vous devez exécuter mysql_install_dbpour initialiser le répertoire de données MySQL.

Tero Kilkanen
la source
1

J'ai eu le même problème sur les paquets Ubuntu 18.04m enregistrés qui semblent ne pas pouvoir démarrer ou bien ...

J'ai résolu en ajoutant la liste de paquets et la signature correctes à partir de ce site .

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mariadb.mirrors.ovh.net/MariaDB/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install mariadb-server

et voilà..

christian audebert
la source
Hmm, c'est intéressant ... Vous avez donc eu un problème avec l'installation pour commencer? Linux pensait qu'il était installé alors qu'il ne l'était vraiment pas? C'est vraiment bizarre ... Pour moi, ce qui s'est passé, c'est que mon processus de configuration ne s'est pas terminé, j'ai donc dû faire manuellement la mysql_install_dbchose.
Pranav Nutalapati
cela a fonctionné pour moi
Sairaj Gadekar
0

Face au même problème. Cela a été résolu après avoir suivi les étapes ci-dessous:

  1. Désinstaller les packages mariadb maridb-server
  2. Suppression du répertoire / var / lib / mysql.
  3. Réinstallation des packages Mariadb, Mariadb-server.
  4. systemct start mariadb; systemctl enable mariadb

(problème résolu).

ragul rangarajan
la source