首页 文章

添加log-bin后,MySQL无法启动 - 主复制

提问于
浏览
2

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

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

服务器没有启动 .

MySQL status

mysqld.service - MySQL服务器已加载:已加载(/etc/systemd/system/mysqld.service;已启用)活动:无效(已停止)自2015年7月13日星期一17:46:47 0800; 1s ago Process:14145 ExecStart = / usr / bin / mysqld_safe --defaults-file = / etc / my.cnf --datadir = / var / lib / mysql --socket = / var / lib / mysql / mysql.sock( code = exited,status = 0 / SUCCESS)CGroup:name = systemd:/system/mysqld.service

但是我按照以下方式更改了log-bin(没有文件夹路径)

log-bin = mysql-bin.log

服务器运行成功 .

MySQL status

mysqld.service - MySQL服务器已加载:已加载(/etc/systemd/system/mysqld.service;已启用)活动:活动(正在运行)自2015年7月13日星期一17:47:43 0800; 2s ago Main 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 / ...

Update

mysqld.log

找不到/var/log/mysql/mysql-bin.index(Errcode:2)

但我的mysql-bin.index默认为

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

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

2 回答

  • 0

    最后我找到了解决方案 . 不确定我是否以正确的方式做到了 .

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

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

    Errcode: 13 表示权限被拒绝 . 所以我已经将所有权从root更改为mysql:

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

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

  • 0

    如果与mysql的数据和日志相关的路径访问出错,它将调用默认的/ var / lib / mysql和/ var / log / mysql . 要切换mysql日志文件路径,请执行以下操作 .

    • 创建新路径

    • 使用mysql所有权的路径用户示例 - sudo显示-R mysql:mysql / mnt / mysql / logs

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

    内容

    #允许日志文件访问

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

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

相关问题