我尝试设置主复制服务器。当我在 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 文件?
终于找到解决办法了。不确定我是否以正确的方式做。
查了一下(Errcode: 2),发现是表示文件或目录不存在。所以我创建了名为 mysql 的文件夹并添加到日志目录中(以 root 用户身份登录)。当我尝试重新启动服务器时,它给了我另一个错误:
/var/log/mysql/mysql-bin.index' 未找到(错误代码:13)
错误代码:13表示权限被拒绝。所以我将所有权从 root 更改为 mysql :
chown -R mysql:mysql /var/log/mysql
我重新启动服务器,它运行成功。
如果mysql的数据和日志相关路径访问出现错误,会调用默认的/var/lib/mysql和/var/log/mysql。要检查 mysql 日志文件路径,请执行以下操作。
创建新路径
使路径具有mysql用户的所有权 示例 - sudo chown -R mysql:mysql /mnt/mysql/logs
将路径传递给apparmor以读取此目录。 文件位置 - /etc/apparmor.d/usr.sbin.mysqld
内容
/mnt/mysql/logs/ r,
/mnt/mysql/logs/** rw,
注意:如果apparmor没有正确的路径,那么它将给出与简单的chown和chmod混淆的权限问题