centos 8 mysql 更改数据存储位置

登录mysql后,先切换到myql数据库下通过show global variables like '%datadir%'; 可以查看数据默认的存储路径(一般在 /var/lib/mysql)

  1. 新建数据存放的目录,拷贝原数据库内容到新建目录,参考

 

新建目录
		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
  1. 修改mysql配置文件。
    关掉mysql服务
    			shell->systemclt stop mysqld
    			修改配置文件,修改datadir socket
    			shell->vim /ect/my.cnf.d          更改datadir  socket    复制到 /etc/my.cnf

     

  2. 重新初始化配置内容。
    shell->mysqld --defaults-file=/etc/my.cnf  --initialize --user=mysql
    
  3. 启动服务,shell->systemctl start mysqld 出现 Error:13 访问权限错误,启动不了。因为修改了datadir路径。解决办法就是关闭防火墙。 selinux=disabled
  4. 重启完成后,再次启动mysql服务。
    启动服务
    shell->systemctl start mysqld
    查看状态
    shell->systemctl status mysqld.service
    

     

  5.  用户登录。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是服务启动时候生成的文件)

  6. 再次登录,成功。查看数据存储路径,修改成功。
posted @   Sailing-101  阅读(685)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示