Я запускаю MySQL 5.0.45 на OS X 10.6.1 и не могу заставить MySQL что-либо регистрировать. Я отлаживаю приложение и мне нужно просмотреть все запросы и ошибки.
Я добавил в etc / my.cnf:
[mysqld]
bind-address = 127.0.0.1
log = /var/log/mysqld.log
log-error = /var/log/mysqld.error.log
Я использовал sudo для создания двух файлов журнала, установил разрешения на 644, а затем перезапустил MySQL.
Я сослался на Где мой журнал mysql в OS X? для устранения неполадок.
Бег:
ps auxww|grep [m]ysqld
Возврат:
_mysql 71 0.0 0.8 646996 15996 ?? S 7:31PM 0:01.10 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Macintosh-41.local.pid
_mysql 46 0.0 0.0 600336 744 ?? Ss 7:30PM 0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe
И работает:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
Возврат:
log /var/log/mysqld.log
log-bin (No default value)
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /var/log/mysqld.error.log
log-isam myisam.log
log-queries-not-using-indexes FALSE
log-short-format FALSE
log-slave-updates FALSE
log-slow-admin-statements FALSE
log-slow-queries (No default value)
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
Бег:
mysql> show variables like '%log%';
Возврат:
+---------------------------------+---------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| expire_logs_days | 0 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | ON |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | /var/log/mysqld.error.log |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_relay_log_size | 0 |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| sync_binlog | 0 |
+---------------------------------+---------------------------+
26 rows in set (0.00 sec)
Любая помощь о том, как я могу заставить MySQL регистрироваться?
Хотя вы использовали chmod 644
убедитесь, что mysql является владельцем журналов.
touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
touch /var/log/mysql.error.log
chown mysql:mysql /var/log/mysql.error.log
Затем перезапустите mysqld.
Затем войдите в mysql и запустите:
mysql> show variables like '%log%';
Посмотрите на значения для general_log
, general_log_file
, log
, log_error
, и т.д.
Включите их по мере необходимости и запустите флешлоги mysqladmin по мере необходимости.
Чтобы включить файлы журнала, вам необходимо убедиться, что одна или несколько из следующих директив находятся в [mysqld]
раздел главного файла конфигурации вашего сервера mysql (/etc/my.cnf
на моем):
[mysqld]
log-bin
log
log-error
log-slow-queries
По умолчанию журналы создаются в том же каталоге данных, в котором находятся сами подкаталоги базы данных (обычно /var/lib/mysql
), а имена файлов журнала по умолчанию равны имени хоста, за которым следует суффикс, который соответствует указанным выше именам директив (например, -bin, -slow-questions и т. д.).
Чтобы хранить журналы по другому пути или использовать другие имена файлов, укажите базовое имя после log=
директива, а также любой путь и имя файла, которые вам нравятся, например:
[mysqld]
log-bin=/var/log/mysql-bin.log
log=/var/log/mysql.log
log-error=/var/log/mysql-error.log
log-slow-queries=/var/log/mysql-slowquery.log
Вам необходимо перезапустить mysqld, чтобы эти изменения вступили в силу.
Предыдущие ответы устарели. Вы можете посмотреть файл конфигурации в /etc/my.cnf
или на окнах ./mysql/my.ini
.
в [mysqld]
раздел добавить
log_bin
general_log
log_error
В документации для Windows указано, что журналы хранятся в ProgramData/MySQL/MySQL Server 5.6/
. Игнорируйте это, потому что это ложь.
Кроме того, рекомендуется log
опция обесценивается и приводит к ошибке
ambiguous option '--log' (log-bin, log_slave_updates)
вход в систему ./mysql/data/host.err
и демон тихо умирает. Правильная настройка general-log
.
Также log-slow-queries
недействителен и вызвал ошибку
C:\mysql\bin\mysqld.exe: unknown option '--log-slow-queries'
Так что обязательно держитесь подальше от этого.
Попробуйте другие настройки журнала в my.cnf. В моем случае мне понадобились:
general_log = on
general_log_file=/var/log/mysql/mysql.log
Введите командную строку mysql с суперпривилегиями и выполните:
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
В моем случае это не имело значения, если для этой переменной уже установлено такое же значение! Кроме того, я изменил разрешения и владельца файла, как упоминалось в других сообщениях.