linux下变更mysql的数据文件目录

变更MySQL的数据文件目录,linux下比windows要简单。windows下的相关操作见附录。

步骤是

1、停止mysql

2、拷贝数据文件到新目录,拷贝时保留文件的权限

3、修改配置文件

4、重启mysql

下面是详细介绍。

一、操作步骤

1、确认配置文件

首先是要找到配置文件。像我们的操作系统,ubuntu20.04,是工控机提供的,被厂家阉割过,出厂就自带mysql。其配置文件是这个:

bash 复制代码
ls /etc/mysql/mysql.conf.d/mysqld.cnf

2、备份配置文件

bash 复制代码
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak

3、修改配置文件

bash 复制代码
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

比如说,我想把新的数据库目录设在 /mnt/sda/mysql 。同时想让别的机器也能访问这个数据库,从配置文件看,默认情况mysql只允许本机连。将bind-address的ip设为0.0.0.0,代表可以被任意机器访问。mysqlx-bind-address同理。mysqlx-bind-address据说是给一些插件使用,其端口是33060,我的C++项目就是用这个端口去连接mysql的。

相关键值修改如下:

bash 复制代码
datadir = /mnt/sda/mysql
bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

4、停止数据库

bash 复制代码
sudo systemctl stop mysql

5、拷贝数据文件

拷贝的同时,保留原来文件的权限设置。就一个参数,这点比windows方便多了。windows下修改mysql的数据目录,比较折腾,详见附录。

bash 复制代码
sudo cp -a /var/lib/mysql/ /mnt/sda/

8、重启数据库

bash 复制代码
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart mysql

9、查看当前mysql的数据文件目录所在

进入mysql,

bash 复制代码
mysql> SHOW VARIABLES LIKE 'datadir';

按道理,以上就可以实现变更数据目录了。但前面说到,我们的mysql是工控机自带的,也不知道厂家做了啥设置,它好像并不使用这个配置文件,一切按默认的来。所以只能修改启动文件,在启动的时候,强制使用配置文件。如下:

6、备份启动服务文件(可选)

bash 复制代码
sudo cp /lib/systemd/system/mysql.service  /lib/systemd/system/mysql.service.bak

7、修改启动服务文件(可选)

bash 复制代码
sudo vi /lib/systemd/system/mysql.service

修改 ExecStart 为

bash 复制代码
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf --user=mysql

如此,数据文件变更矣。

二、附录

windows下mysql8修改my.ini设置datadir后无法启动问题

相关推荐
Zzzzmo_2 小时前
【MySQL】JDBC(含settings.xml文件配置/配置国内镜像以及pom.xml文件修改)
数据库·mysql
FirstFrost --sy3 小时前
MySQL内置函数
数据库·mysql
eggwyw3 小时前
MySQL-练习-数据汇总-CASE WHEN
数据库·mysql
mygljx6 小时前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
Bdygsl7 小时前
MySQL(1)—— 基本概念和操作
数据库·mysql
身如柳絮随风扬7 小时前
什么是左匹配规则?
数据库·sql·mysql
jiankeljx7 小时前
mysql之如何获知版本
数据库·mysql
小李来了!8 小时前
数据库DDL、DML、DQL、DCL详解
数据库·mysql
我科绝伦(Huanhuan Zhou)8 小时前
【生产案例】MySQL InnoDB 数据损坏崩溃修复
数据库·mysql·adb
海棠蚀omo9 小时前
从零敲开 MySQL 的大门:库与表的基础操作实战(保姆级入门指南)
数据库·mysql