一、环境说明
-
操作系统:
UnionTech OS Server 20 Enterprise
-
数据库:
MySQL 5.7
注1:统信 UOS 查看系统版本方式
# 方式一,查看发行版信息 cat /etc/os-release # 方式二,查看详细版本信息 cat /etc/os-version
注2:以下操作需使用 root 用户或具有 sudo 权限的用户。
二、查看当前数据目录
登录 MySQL 控制台
mysql -uroot -p
在 MySQL 控制台执行如下语句,查看当前数据目录
show variables like 'datadir';
我的 MySQL 当前数据目录为: /var/lib/mysql
三、停止 MySQL 服务
# 停止服务
systemctl stop mysql
# 检查运行状态,确认服务停止
systemctl status mysql
四、创建目标数据目录,迁移数据
# 将数据迁到到 /mnt/hd1/ 目录下,迁移后的数据目录为 /mnt/hd1/mysql
# 使用 -a 选项,用户组、链接等都会保留,无需再修改用户组等操作
cp -av /var/lib/mysql /mnt/hd1/
# 修改当前数据目录名称,备份
mv /var/lib/mysql /var/lib/mysql_backup
五、修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
将 datadir = /var/lib/mysql
修改为 datadir = /mnt/hd1/mysql
。
六、创建保证通过脚本环境的最小目录结构
mkdir -p /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql/mysql
七、启动 MySQL 服务
# 启动服务
systemctl start mysql
# 检查运行状态,确认服务启动
systemctl status mysql
八、验证数据目录是否修改成功
-
验证配置
登录 MySQL 控制台后,查看datadir
变量是否为修改后的新目录/mnt/hd1/mysql
show variables like 'datadir';
-
验证数据文件是否写入新目录(可选)
登录 MySQL 控制台后,创建 testdb 数据库和 User 表。-- 创建数据库,数据目录下会新建 testdb 目录 create database testdb; use testdb; -- 创建表,testdb 目录下会新建对应表结构文件和数据文件 create table User ( id int primary key auto_increment, name varchar(30) not null );
完成 testdb 数据库和 User 表创建后,检查新数据目录下是否有 testdb 目录,testdb 目录下是否有 User 表的表结构文件和表数据文件。
# 检查是否有 testdb 目录 ls -l /mnt/hd1/mysql # 检查是否有 User 表的表结构文件和表数据文件 ls -l /mnt/hd1/mysql/testdb
九、删除备份目录
检查一切正常后,可删除备份目录 /var/lib/mysql_backup
。
rm -fr /var/lib/mysql_backup
参考资料
[1] How To Change The MySQL Data Directory to Another Location on Ubuntu 16.04
标签:UOS,20,lib,MySQL,Server,testdb,mysql,var,目录 From: https://www.cnblogs.com/qifenghao/p/16618791.html