debugsqlMinor
Mariadb default logs location & --log-error
Viewed 0 times
errorlogslogmariadbdefaultlocation
Problem
I am using mariadb and I to investigate some issue I wanted to check the logs. To my surprise, log file is not generated for mariadb.
I suspect this cannot be the case so I am doubting my search skills.
I have added the entry in my.cnf still above field is coming to be empty.
So, I want to know do we have any default location where these logs are getting generated, if the path cannot be read from config files.
Update:
After some investigation, I found this information,
Reference: https://mariadb.com/kb/en/mariadb/error-log/
Activating the Error Log
The error log is active by default. The log-error=filename option determines where the output will be written. If no file name is specified, the log will be written to host-name.err. If no absolute path is specified, the file will be written to the data directory (determined by the value of the datadir system variable).
On Unix systems, if the --log-error option is not used, the errors are written to stderr (usually, the command line).
On Windows, if the --c
I suspect this cannot be the case so I am doubting my search skills.
MariaDB [(none)]> show variables like 'log_error'
-> ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_error | |
+---------------+-------+
1 row in set (0.00 sec)I have added the entry in my.cnf still above field is coming to be empty.
[root@cslcodev11-oem ~]# cat /etc/my.cnf
[mysqld]
!includedir /etc/mysqld/conf.d
datadir=/mnt/mgmt/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
tmpdir=/mnt/mgmt/var/lib/mysql_tmp
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
### TRT-3229 #####
sync_binlog=1
innodb_flush_method=O_DIRECT
innodb_support_xa = 1
myisam_repair_threads = 2
myisam_recover_options = FORCE
###################
innodb_file_per_table=1
innodb_log_buffer_size = 8M
table_open_cache=256
max_heap_table_size=256M
### TRT-4685 ###
max_connections=500
################
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/var/log/mariadb/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@cslcodev11-oem ~]#So, I want to know do we have any default location where these logs are getting generated, if the path cannot be read from config files.
Update:
After some investigation, I found this information,
Reference: https://mariadb.com/kb/en/mariadb/error-log/
Activating the Error Log
The error log is active by default. The log-error=filename option determines where the output will be written. If no file name is specified, the log will be written to host-name.err. If no absolute path is specified, the file will be written to the data directory (determined by the value of the datadir system variable).
On Unix systems, if the --log-error option is not used, the errors are written to stderr (usually, the command line).
On Windows, if the --c
Solution
Going off the documentation, the error log should be in the default location of
In the directory
BUT, I am starting the service using service mysqld start command so I want to know what all options are used by default when we start the service using service mysql start? ESP, is --log-error used?
After running the following command,
we can see that the line that systemd uses to start the process is
If we also run
The file MY_SPECIAL.conf does not exist on my machine, as
I do have entries for
On the MariaDB Knowledge base page for the error-log there is a paragraph that states.
This answers the question because
/var/lib/mysql and it should be named the default hostname.err, but it's just not there. In the directory
/var/lib/mysql I do have a tc.log, iblogfile0, iblogfile1, aria_log.00000001, and aria_log_control files. But I cannot read any of them, they are encrypted. Anyone know what these are?BUT, I am starting the service using service mysqld start command so I want to know what all options are used by default when we start the service using service mysql start? ESP, is --log-error used?
After running the following command,
cat /etc/systemd/system/mysqld.service | grep "mysql"we can see that the line that systemd uses to start the process is
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION. The options passed to MariaDB are stored in the $MYSQLD_OPTS variable. If we also run
cat /etc/systemd/system/mysqld.service | grep "MYSQLD_OPTS" we get the following. MYSQLD_OPTS here is for users to set in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
Use the [Service] section and Environment="MYSQLD_OPTS=...".
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITIONThe file MY_SPECIAL.conf does not exist on my machine, as
find / -name "MY_SPECIAL" reveals. I do have entries for
mysqld in journalctl. So I'm thinking that it uses the the systemd system logs by default for us systemd users. On the MariaDB Knowledge base page for the error-log there is a paragraph that states.
systemd has its own logging system, and Linux distributions running systemd may log errors there instead. To view the systemd logs, use journalctl -u mariadb.This answers the question because
--log-error would be an option that could be added to MY_SPECIAL.conf file and journalctl is where mariadb logs errors by default on a systemd system.Code Snippets
MYSQLD_OPTS here is for users to set in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
Use the [Service] section and Environment="MYSQLD_OPTS=...".
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITIONContext
StackExchange Database Administrators Q#174533, answer score: 2
Revisions (0)
No revisions yet.