centos 8 mysql 更改数据存储位置
登录mysql后,先切换到myql数据库下通过show global variables like '%datadir%';
可以查看数据默认的存储路径(一般在 /var/lib/mysql)
- 新建数据存放的目录,拷贝原数据库内容到新建目录,参考
新建目录
shell->mkdir /mnt/mystorage/mysql
拷贝
shell->cp -a -R /var/lib/mysql/* /mnt/mystorage/mysql/
将目录授权给mysql用户组
shell->chown mysql:mysql /mnt/mystorage/mysql
更改目录权限(也可以不加权限,防止其他用户无法访问,比如root用户设置750权限,普通用户访问mysql.sock文件可能存在权限不够)
shell->chmod 750 /mnt/mystorage/mysql
- 修改mysql配置文件。
关掉mysql服务 shell->systemclt stop mysqld 修改配置文件,修改datadir socket shell->vim /ect/my.cnf.d 更改datadir socket 复制到 /etc/my.cnf
- 重新初始化配置内容。
shell->mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
- 启动服务,
shell->systemctl start mysqld
出现 Error:13 访问权限错误,启动不了。因为修改了datadir路径。解决办法就是关闭防火墙。 selinux=disabled - 重启完成后,再次启动mysql服务。
启动服务 shell->systemctl start mysqld 查看状态 shell->systemctl status mysqld.service
- 用户登录。mysql -uroot -p 输入密码,提示错误。SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 参考:https://blog.csdn.net/huoyongliang/article/details/80667071建立链接。shell->ln -s /mnt/mystorage/mysql/mysql.sock /var/lib/mysql/mysql.sock (mysql.sock是服务启动时候生成的文件)
- 再次登录,成功。查看数据存储路径,修改成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!