我在Ubuntu(18.04)上有一个MySQL服务器。数据库正在增长,我向系统添加了另一个磁盘(const TransactionReducer = ((state, action) => {
switch(action.type) {
case "ADD_TRANSACTION":
return [action.payload, ...state];
case "DELETION":
(state || []).splice(action.payload.index, 1)
return [...state];
default:
return state;
}
});
)。移动数据目录后服务器无法启动。
新磁盘已安装在sdb1
上。我试图将MySQL数据目录移动到新磁盘上,所以我关闭了服务器并使用以下权限复制了该目录:/mnt/tb
。我还编辑了cp -rp /var/lib/mysql /mnt/tb/
,所以datadir是新路径。
但是,我无法使用新目录启动服务器。如果我切换回/etc/mysql/mysql.conf.d/mysqld.cnf
路径,则服务器可以启动。这两个目录具有相同的用户/组读/写权限。 Ubuntu服务器未安装SELinux。
这是我的error.log,尝试2次启动服务器。第一个失败了/var/lib/mysql
,第二个失败了/var/lib/mysql
。我读了操作系统errno 13-权限之前被拒绝。我以为是因为找不到二进制日志文件,所以我在cnf文件中添加了/mnt/tb/mysql
。它仍然找不到log_bin_basename = /mnt/tb/mysql/binlog
。
binlog.index
我不知道哪一部分出错了。感谢您的任何建议!
答案 0 :(得分:0)
阻止MySQL初始化的问题是AppArmor,这是一种强制访问控制(MAC)系统,如SELinux。有3种处理方法:
修改/etc/apparmor.d/usr.sbin.mysqld
,将/var/lib/mysql
更改为自定义路径,然后重新加载apparmor
禁用mysql的Apparmor
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/disable/usr.sbin.mysqld
完全禁用Apparmor
sudo systemctl disable apparmor