添加 log-bin 后 MySQL 未启动 - 主复制

问题描述 投票:0回答:2

我尝试设置主复制服务器。当我在 my.cnf 中添加如下 log-bin 目录后尝试启动/重新启动服务器时,

log-bin = /var/log/mysql/mysql-bin.log 

服务器未启动。

MySQL 状态

mysqld.service - MySQL 服务器 已加载:已加载(/etc/systemd/system/mysqld.service;已启用) 活动:不活动(死亡) 自 2015 年 7 月 13 日星期一 17:46:47 +0800 起; 1秒前 进程:14145 ExecStart=/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock (代码=已退出,状态=0/成功) CGroup: name=systemd:/system/mysqld.service

但是在我将日志箱更改为以下内容之后(没有文件夹路径)

log-bin = mysql-bin.log

服务器运行成功。

MySQL 状态

mysqld.service - MySQL 服务器 已加载:已加载(/etc/systemd/system/mysqld.service;已启用) Active:活跃(运行) 自 2015 年 7 月 13 日星期一 17:47:43 +0800 起; 2秒前 主PID:15272(mysqld_safe) CGroup: name=systemd:/system/mysqld.service ├ 15272 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysq... └ 15615 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/...

更新

来自mysqld.log

/var/log/mysql/mysql-bin.index' 未找到(错误代码:2)

但是我的mysql-bin.index默认在

/var/lib/mysql/mysql-bin.index

有人可以帮助我,因为我刚刚开始学习主从复制吗?我是否需要创建一个名为 mysql 的文件夹并更改 mysql 的权限并放入日志目录中,或者如何确保它正确找到我的 mysql-bin.index 文件?

mysql fedora master-slave
2个回答
6
投票

终于找到解决办法了。不确定我是否以正确的方式做。

查了一下(Errcode: 2),发现是表示文件或目录不存在。所以我创建了名为 mysql 的文件夹并添加到日志目录中(以 root 用户身份登录)。当我尝试重新启动服务器时,它给了我另一个错误:

/var/log/mysql/mysql-bin.index' 未找到(错误代码:13)

错误代码:13表示权限被拒绝。所以我将所有权从 root 更改为 mysql :

chown -R mysql:mysql /var/log/mysql

我重新启动服务器,它运行成功。


2
投票

如果mysql的数据和日志相关路径访问出现错误,会调用默认的/var/lib/mysql和/var/log/mysql。要检查 mysql 日志文件路径,请执行以下操作。

  1. 创建新路径

  2. 使路径具有mysql用户的所有权 示例 - sudo chown -R mysql:mysql /mnt/mysql/logs

  3. 将路径传递给apparmor以读取此目录。 文件位置 - /etc/apparmor.d/usr.sbin.mysqld

    内容

    允许日志文件访问

     /mnt/mysql/logs/ r,
    
     /mnt/mysql/logs/** rw,
    

注意:如果apparmor没有正确的路径,那么它将给出与简单的chown和chmod混淆的权限问题

© www.soinside.com 2019 - 2024. All rights reserved.