Où sont les journaux de MySQL? Feutre


1

Bonjour, je viens d'installer MySQL sur mon Fedora de Source, avec cmake, make, make install, etc. Cela fonctionne, mais où puis-je trouver les journaux du serveur? J'ai regardé dans / var / log, mais malheureusement, mysql ne sert à rien.

/etc/my.cnf

# For advice on how to change settings please see
# 
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES    

Pourriez-vous spécifier les versions de MySQL et de Fedora et indiquer si vous avez configuré certains paramètres de compilation de MySQL?
Pabouk

Réponses:


5

Si mysqld est en cours d'exécution, vous pouvez inspecter ses descripteurs ouverts pour voir où il se connecte, en utilisant par exemple proc:

[root@localhost ~]# ls -l `pgrep mysqld | sed 's@.*@/proc/&/fd/@'` | grep log
l-wx------. 1 root root 64 Jul 23 10:47 1 -> /var/log/mysqld.log
l-wx------. 1 root root 64 Jul 23 10:47 2 -> /var/log/mysqld.log
lrwx------. 1 root root 64 Jul 23 10:47 8 -> /var/lib/mysql/ib_logfile0
lrwx------. 1 root root 64 Jul 23 10:47 9 -> /var/lib/mysql/ib_logfile1
[root@localhost ~]# 

Dans ce cas, il s'agit de /var/log/mysqld.log


Lorsque j'ai fait cela, il ne fait que répertorier les fichiers ib_logfile0 et ib_logfile1. Lorsque j'essaie de les chatter, ils sont pleins de @@@@@@@@@@@@@@@: /
CSharpBeginner

On dirait que votre mysql ne se connecte pas du tout, alors. Logfile0..1 sont des fichiers journaux binaires de données de base de données, et non des fichiers journaux lisibles par l'homme.
cyberz

Vérifiez votre my.cnf, par exemple sur le mien, j'ai: log-error = / var / log / mysqld.log dans la section [mysqld_safe].
cyberz

Mon my.cnf si presque vide, mon mysql est en cours d'exécution, je me suis connecté, créer des bases de données, des tables, 2 utilisateurs, connecté avec eux, tout avait l'air correct, j'ai collé mon "etc / my.cnf" dans l'édition n ° 1
CSharpBeginner

Ajoutez log-error = / var / log / mysqld.log dans [mysqld_safe] et redémarrez le serveur MySQL, il devrait se connecter. Assurez-vous également que le fichier /var/log/mysqld.log est accessible en écriture à l'utilisateur mysql.
cyberz

1

Il existe différents types de journaux déterminés par les variables MySQL globales suivantes:

  • log_error pour le journal des messages d'erreur;
  • general_log_filepour le fichier journal de requête général (activé par general_log);
  • slow_query_log_filepour le fichier journal de requête lente (activé par slow_query_log);

Si vous souhaitez lire le fichier journal des erreurs, essayez cette commande:

sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")

puis frapper Control- Cquand finir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.