MySQL 添加 log-bin 后未启动 - 主复制
MySQL not starting up after added log-bin - Master Replication
我正在尝试设置主复制服务器。当我在 my.cnf、
中添加 log-bin 目录后尝试 start/restart 服务器时
log-bin = /var/log/mysql/mysql-bin.log
服务器没有启动。
MySQL状态
mysqld.service - MySQL Server
Loaded: loaded (/etc/systemd/system/mysqld.service; enabled)
Active: inactive (dead) since Mon, 13 Jul 2015 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状态
mysqld.service - MySQL Server
Loaded: loaded (/etc/systemd/system/mysqld.service; enabled)
Active: active (running) since Mon, 13 Jul 2015 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/...
更新
来自 mysqld.log :
/var/log/mysql/mysql-bin.index' not found (Errcode: 2)
但是我的 mysql-bin.index 默认为
/var/lib/mysql/mysql-bin.index
我刚开始学习主从复制,有人能帮帮我吗?我是否需要创建一个文件夹名称 mysql 并将权限更改为 mysql 并放入日志目录或如何确保它正确找到我的 mysql-bin.index 文件?
终于找到解决办法了。不知道我做的对不对。
搜索(Errcode: 2)后,发现提示文件或目录不存在。所以我创建了名为 mysql 的文件夹并添加到日志目录中(以根用户身份登录)。当我尝试重新启动服务器时,它给了我另一个错误:
/var/log/mysql/mysql-bin.index' not found (Errcode: 13)
Errcode: 13 表示权限被拒绝。所以我将所有权从 root 更改为 mysql :
chown -R mysql:mysql /var/log/mysql
我重新启动服务器,它运行成功。
如果与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,
注意: 如果 apparmor 没有正确的路径那么它会给出与简单的 chown 和 chmod 混淆的权限问题
我正在尝试设置主复制服务器。当我在 my.cnf、
中添加 log-bin 目录后尝试 start/restart 服务器时log-bin = /var/log/mysql/mysql-bin.log
服务器没有启动。
MySQL状态
mysqld.service - MySQL Server Loaded: loaded (/etc/systemd/system/mysqld.service; enabled) Active: inactive (dead) since Mon, 13 Jul 2015 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状态
mysqld.service - MySQL Server Loaded: loaded (/etc/systemd/system/mysqld.service; enabled) Active: active (running) since Mon, 13 Jul 2015 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/...
更新
来自 mysqld.log :
/var/log/mysql/mysql-bin.index' not found (Errcode: 2)
但是我的 mysql-bin.index 默认为
/var/lib/mysql/mysql-bin.index
我刚开始学习主从复制,有人能帮帮我吗?我是否需要创建一个文件夹名称 mysql 并将权限更改为 mysql 并放入日志目录或如何确保它正确找到我的 mysql-bin.index 文件?
终于找到解决办法了。不知道我做的对不对。
搜索(Errcode: 2)后,发现提示文件或目录不存在。所以我创建了名为 mysql 的文件夹并添加到日志目录中(以根用户身份登录)。当我尝试重新启动服务器时,它给了我另一个错误:
/var/log/mysql/mysql-bin.index' not found (Errcode: 13)
Errcode: 13 表示权限被拒绝。所以我将所有权从 root 更改为 mysql :
chown -R mysql:mysql /var/log/mysql
我重新启动服务器,它运行成功。
如果与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,
注意: 如果 apparmor 没有正确的路径那么它会给出与简单的 chown 和 chmod 混淆的权限问题