首先,建立一个新的数据存储路径:执行命令`sudo mkdir -p /data/mysql`,创建`/data/mysql`目录。接着,将原有数据复制到新路径下:执行命令`sudo cp -R /var/lib/mysql/* /data/mysql`,将数据从旧路径复制到新路径。然后,修改新路径的权限:使用命令`sudo chown -R mysql:mysql /data/mys...
ubuntu下修改mysql默认data路径
在Ubuntu系统中,如果想要修改MySQL默认的数据存储路径,可以通过以下步骤实现:
首先,建立一个新的数据存储路径:
执行命令`sudo mkdir -p /data/mysql`,创建`/data/mysql`目录。
接着,将原有数据复制到新路径下:
执行命令`sudo cp -R /var/lib/mysql/* /data/mysql`,将数据从旧路径复制到新路径。
然后,修改新路径的权限:
使用命令`sudo chown -R mysql:mysql /data/mysql`,确保MySQL服务拥有正确的访问权限。
接着,打开MySQL配置文件:
执行`sudo vim /etc/mysql/my.cnf`,定位并注释原有的`datadir = /var/lib/mysql`行。
在同文件中添加新的数据存储路径:
插入`datadir = /data/mysql`,将MySQL数据存储切换至新路径。
需要注意的是,修改MySQL配置文件后,仅重启MySQL服务可能不足以完成路径切换。因为Ubuntu系统中存在一个访问控制系统APPARMOR,它限制了MySQL服务对特定路径的访问。
因此,还需要修改APPARMOR规则:
执行`sudo vim /etc/apparmor.d/usr.sbin.mysqld`,在文件中查找并注释原有的`/var/lib/mysql`相关访问权限设置。
接着,新增对`/data/mysql`的读写访问权限:
添加`/data/mysql r,/data/mysql/** rwk,`,允许MySQL服务在新路径下进行读写操作。
随后,修改MySQL抽象访问控制文件:
执行`sudo vim /etc/apparmor.d/abstractions/mysql`,注释掉原有`/var/lib/mysql/mysql.sock`的访问权限设置。
新增`/data/mysql/mysql.sock rw`,允许MySQL服务访问新路径下的`mysql.sock`文件。
完成以上步骤后,重启APPARMOR和MySQL服务:
执行`sudo /etc/init.d/apparmor restart`和`sudo /etc/init.d/mysql restart`,确保系统更新配置。
至此,MySQL默认数据路径已成功切换至`/data/mysql`,数据读写操作均通过新路径进行,确保了数据存储的安全性和高效性。2024-09-19