liunx(ubuntu)修改MySQL数据库存储位置

整个过程一波三折
我现在甚至不知道我最终是如何解决这一问题的
就把大致的过程记录一下吧

2022.7.26更新
第一次修改的时候看到的时候修改,socket,datadir的,当时也是纳闷,我修改个数据存放位置,为什么要改动socket,但是但的当时还是修改了,现在需要重装系统,好像还没一个月的……,又需要修改
按照自己的教程发现最后
失败 了
后来主要是修改了
这个
在这里插入图片描述
但是这个在我说的文件中,这次没有这一条,所以我没加,那我是在哪找到的呢
在这里插入图片描述
这个里面找到的
这篇博文链接
ubuntu 18.04.3修改Mysql默认数据存储路径
这里就没有修改socket,只修改了datadir,我觉得还是很对的,之后如果还需要改可以参考这一篇文章

以下就别看啦
这里以迁移到/mysqldata/为例

  1. 首先查看数据库数据存储位置
mysql> select @@datadir;
+-------------------+
| @@datadir         |
+-------------------+
| /mysqldata/mysql/ |
+-------------------+
1 row in set (0.00 sec)

  1. 更改数据库存储路径

拷贝原数据路径到目的路径

cp -R /var/lib/mysql /mysqldata/

更改新的目的数据库权限,用于service启动

chown -R mysql:mysql /mysqldata/mysql
  1. 更改配置文件

mysql的配置文件有好多个,同样的my.cnf,分布在系统的各个地方,但是有优先级的(排在前面的先执行)我记得是三个地方有兴趣可以查下,这里给出两个地址
/etc/my.cnf /etc/mysql/my.cnf
注意修改时需要root权限,执行sudo su切换到root下
在root下,可以用gedit编辑器比较方便,在原用户下是只读文件这里也能编辑,当然如果一定要在原用户下,可以修改权限,或者用vim打开,修改后强制保存

在这两个文件中添加或修改socket

[client]
socket   = /home/mysqldata/mysql/mysqld.sock

[mysqld]
socket   = /home/mysqldata/mysql/mysqld.sock

新版的MySQL配置文件可能打开只有

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

我就是这样的,我在/etc/mysql/mysql.conf.d/mysqld.cnf中看到了配置信息
所以除了添加以上my.cnf配置外,我还在这个文件中修改了socket,datadir

# socket  	= /var/run/mysqld/mysqld.sock
# datadir	= /var/lib/mysql
socket  	= /home/mysqldata/mysql/mysqld.sock
datadir         = /home/mysqldata/mysql

在这个配置文件中看到一句话

# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

看来如果要修改socket还要修改/etc/mysql/debian.cnf文件

然后就是将这个文件中的socket改为和上方的相同

这里修改完后还有一个配置文件

/etc/mysql/mysql.conf.d/mysqld.cnf
还是需要修改datadir
改为

# Allow data dir access
  /home/mysqldata/mysql/ r,
  /home/mysqldata/mysql/** rwk,

  1. 重启配置
# 不推荐这个命令,可能会报错
systemctl restart mysqld.service
Failed to restart mysqld.service: Unit mysqld.service not found.

我使用的是如下命令

sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart

这是如果都没报错那就万事大吉

  1. 测试
mysql -uroot -p
mysql> select @@datadir;

如果变了那就成功!,如果没变,可以继续尝试my.cnf中socket地址的修改

  1. 补充
    虽然以上是成功了,但是在Navicat中建立时,又报错!
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

可以将localhost修改为127.0.0.1即可

在这里插入图片描述
这个问题就解决了
至此,全部问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值