MySQL数据存储路径更改

一、准备工作

1.检查selinux是否关闭

注意如果没有禁用selinux, 修改MySQL的数据路径后启动MySQL服务会遇到一些错误。关于这个的解释是后台服务都需要有对相应目录的对应权限,而 mysql 的默认路径/var/lib/mysql 已经添加了相应的策略,修改路径后由于没有相应的策略,导致后台进程读取文件被selinux阻止,从而出现权限错误。 所以要么关闭Selinux或修改文件安全上下文。

[root@base-omu ~]# sestatus
SELinux status:                 disabled

2.确认MySQL数据库存储目录

我这里默认存储为/var/lib/mysql/

[root@base-omu ~]# mysql -uroot -p
mysql-> show global variables like "datadir%";

+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+

二、关闭MySQL服务 与 连接MySQL所有服务应用模块

注:关闭MySQL时,也要关闭连接MySQL应用模块,否正会导致数据丢失或应用程序报错。

  • 在更改MySQL的数据目录前,必须关闭MySQL服务。
    [root@base-omu ~]# systemctl stop mysqld.service
    [root@base-omu ~]# systemctl status mysqld.service
  • 关闭所有连接MySQL服务应用模块
涉及MySQL的所有服务都关闭

三、创建新的数据库存储目录

新的目录根据储存空间情况建立,并进入。

[root@base-omu ~]# mkdir -p /opt/mydata
[root@base-omu ~]# cd  /opt/mydata

四、拷贝MySQL数据目录到新位置

[root@base-omu ~]# cp -r -p /var/lib/mysql /opt/mydata
注意检查权限
cp -r 递归复制源目录下所有文件及子目录 到 目标目录或文件
cp -p 把源文件或目录下的所具有的权限一同复制 到 目标目录或文件

五、修改配置文件my.cnf

进入系统默认安装位置

[root@base-omu mydata]# vi /etc/my.cnf

更改路径
datadir=/opt/mydata/mysql
socket=/opt/mydata//mysql/mysql.sock

添加路径
[client]
socket = /opt/mydata/mysql/mysql.sock

修改后的my.cnf文件

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
socket          = /opt/mydata/mysql/mysql.sock

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/opt/mydata/mysql
socket=/opt/mydata/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

六、启动MySQL服务与连接MySQL所有服务应用

  • 启动mysql服务
[root@base-omu mydata]# systemctl start mysqld.service
  • 检查log是有否出错信息
[root@base-omu mydata]# tail -500f /var/log/mysqld.log
  • 启动连接MySQL服务应用模块,注意查看连接MySQL是否报错。
根据实际情况启动相应模块

七、验证MySQL数据库路径

  • 连接数据库验证MySQL路径是否修改成功
[root@base-omu mydata]# mysql -u root -p
mysql->show global variables like "datadir%";

+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir       | /opt/mydata/mysql/|
+---------------+-----------------+

根据实际情况是否删除老的数据存储目录

你可能感兴趣的:(mysql,数据库,linux)