(查看mysql启动错误的唯一方法)
我知道这个错误:
/usr/sbin/mysqld: File '/etc/mysql/var/log-bin.index' not found (Errcode: 13)因为实际上,这个文件不存在!(我在尝试设置新的复制系统时删除了它),如果我将配置行更改为:
log-bin-index = log-bin.index我得到了一个不同的错误:
[ERROR] Can't generate a unique log-filename /etc/mysql/var/bin.(1-999)
[ERROR] MSYQL_BIN_LOG::open failed to generate new file name.
[ERROR] Aborting当我第一次在这个系统上设置复制时,我不需要创建这个文件。我做了同样的事情-添加了对以前不存在的文件的引用,并且mysql创建了它。继电器日志等也是如此。
我不知道mysql为什么坚持尝试读取旧文件夹。
我应该重新安装整个软件包吗?这似乎有点过火了。
我的my.cnf:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = IP
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
table_cache = 64
sort_buffer =64K
net_buffer_length =2K
query_cache_limit = 1M
query_cache_size = 16M
slow_query_log_file = /etc/mysql/var/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes
expire_logs_days = 10
max_binlog_size = 100M
server-id = 3
log-bin = /etc/mysql/var/bin.log
log-slave-updates
log-bin-index = /etc/mysql/var/log-bin.index
log-error = /etc/mysql/var/error.log
relay-log = /etc/mysql/var/relay.log
relay-log-info-file = /etc/mysql/var/relay-log.info
relay-log-index = /etc/mysql/var/relay-log.index
auto_increment_increment = 10
auto_increment_offset = 3
master-host = HOST
master-user = USER
master-password=PWD
replicate-do-db = DBNAME
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash
[myisamchk]
key_buffer_size = 16M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
!includedir /etc/mysql/conf.d/更新:将binlog和中继日志语句中的所有/etc/mysql/var/xxx路径更改为本地,解决了这个问题。
一开始我以为是apparmor造成的,但是当我将/etc/mysql/* rw添加到apparmor的配置并重新启动它时,它仍然无法读取完整的路径。
发布于 2012-07-13 06:25:22
首先,重新安装mysql并不是真正的解决方案。特别是如果您的意思是删除和安装软件包-这将不会触及您的数据目录中的文件,您的问题不会改变。
第二,您不应该接触磁盘上的binlog文件--将它们从文件系统中删除并不是管理它们的正确方法。mysql中有删除旧日志的命令。MySQL还必须维护索引文件,因此磁盘上的文件与它保存的现有绑定日志列表相匹配。请参阅清除二进制日志
所以你陷入困境是因为你在做假设和接触你不该做的文件。
此错误:
/usr/sbin/mysqld: File '/etc/mysql/var/log-bin.index' not found (Errcode: 13)并不意味着它不存在;错误13意味着“权限被拒绝”,这可能意味着mysql不能写入/etc/mysql/var/
现在真正需要做的就是修复/etc/mysql/var/上的权限,比如:chown mysql:mysql /etc/mysql/var; chmod 0775 /etc/mysql/var
如果没有.index文件,也没有绑定日志,mysql将从头开始并创建它需要的文件。删除该目录中的任何文件。
发布于 2012-07-11 08:27:18
/etc/mysql/var/似乎不是正确的路径,您应该检查您的datadir设置。应该像/var/lib/mysql一样
https://serverfault.com/questions/406652
复制相似问题