MySQL如何更改数据库数据存储目录详解

 更新时间:2018年11月03日 08:51:13   作者:潇湘隐者  
这篇文章主要给大家介绍了关于MySQL如何更改数据库数据存储目录的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录。下文总结整理了实践过程的操作步骤。话不多说了,一起来看看吧

方法如下:

1:确认MySQL数据库存储目录

[root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir
 
Enter password: 
 
| datadir | /var/lib/mysql/

2:关闭MySQL服务

在更改MySQL的数据目录前,必须关闭MySQL服务。

方式1:

[root@DB-Server ~]# service mysql status
 
MySQL running (9411)[ OK ]
 
[root@DB-Server ~]# service mysql stop
 
Shutting down MySQL..[ OK ]
 
[root@DB-Server ~]# 

方式2:

[root@DB-Server ~]# /etc/rc.d/init.d/mysql status
 
MySQL running (8900)[ OK ]
 
[root@DB-Server ~]# /etc/rc.d/init.d/mysql stop
 
Shutting down MySQL..[ OK ]
 
[root@DB-Server ~]# 

3:创建新的数据库存储目录

[root@DB-Server ~]# cd /u01

[root@DB-Server u01]# mkdir mysqldata

4:移动MySQL数据目录到新位置

[root@DB-Server ~]# mv /var/lib/mysql /u01/mysqldata/

5:修改配置文件my.cnf

并不是所有版本都包含有my.cnf这个配置文件,在MySQL 5.5版本,我就找不到my.cnf这个配置文件, 而有些MySQL版本该文件位于/usr/my.cnf,如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf中。命令如下:

[root@DB-Server mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

编辑/etc/my.cnf文件,修改参数socket

MySQL 5.5 版本

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /u01/mysqldata/mysql/mysql.sock
 
# Here follows entries for some specific programs
 
# The MySQL server
[mysqld]
port = 3306
socket = /u01/mysqldata/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

6:修改启动脚本/etc/init.d/mysql

将参数datadir修改为datadir=/u01/mysqldata/mysql/

7:启动MySQL服务并验证MySQL数据库路径

[root@DB-Server ~]# service mysql start
Starting MySQL..[ OK ]
[root@DB-Server ~]# mysqladmin -u root -p variables | grep datadir
Enter password: 
| datadir | /u01/mysqldata/mysql/ 

我的疑问:

1: 在修改数据库的存储目录前,/var/lib/mysql/目录下根本没有mysql.sock文件,安装上面配置后,就会生成mysql.sock文件。

关于mysql.sock文件,搜索了一下资料:mysql.sock是用于socket连接的文件。也就是只有你的守护进程启动起来这个文件才存在。但是你的mysql程序(这个程序是客户端,服务器端是mysqld)可以选择是否使用mysql.sock文件来连接(因为这个方法只适合在Unix主机上面连接本地的mysqld),对于非本地的任何类型的主机。那么这个文件是否一定需要的呢? 这个需要进一步了解清楚。

2:我在网上看有些网友总结的修改MySQL数据路径,有些需要给新建的目录的权限做一些处理,而有些有不用对目录权限进行授权,我没有处理,也没有什么问题。到底要不要对新的数据库目录授权呢?

3:我在MySQL_5.6.20这个版本测试时,不修改my.cnf,只修改启动脚本/etc/init.d/mysql,也完全没有啥问题。也没有myssql.sock文件生成。

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

[root@DB-Server mysql]# /etc/init.d/mysql start
 
Starting MySQL....The server quit without updating PID file (/u01/mysqldata/mysql//DB-Server.localdomain.pid).[FAILED]
 
[root@DB-Server mysql]# 
 
[root@DB-Server mysql]# chcon -R -t mysqld_db_t /u01/mysqldata/mysql/
 
[root@DB-Server mysql]# /etc/init.d/mysql start
 
Starting MySQL.[ OK ]
 
[root@DB-Server mysql]# 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

参考资料:

http://database.ctocio.com.cn/tips/449/7566949.shtml

https://www.jb51.net/article/150089.htm

https://www.jb51.net/article/150090.htm

相关文章

  • MySQL验证用户权限的方法

    MySQL验证用户权限的方法

    这篇文章主要介绍了MySQL验证用户权限的方法,需要的朋友可以参考下
    2015-11-11
  • SQL实现LeetCode(176.第二高薪水)

    SQL实现LeetCode(176.第二高薪水)

    这篇文章主要介绍了SQL实现LeetCode(176.第二高薪水),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    Mysql5.7中使用group concat函数数据被截断的问题完美解决方法

    前几天在项目中遇到一个问题,使用 GROUP_CONCAT 函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后来查找出原因,解决方法大家跟随脚本之家小编一起看看吧
    2018-03-03
  • 详解Mysql基础语法的使用

    详解Mysql基础语法的使用

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。这篇文章主要介绍了Mysql基础语法的使用,需要的朋友可以参考下
    2018-07-07
  • Linux环境mysql5.7.12安装教程

    Linux环境mysql5.7.12安装教程

    这篇文章主要为大家详细介绍了Linux环境Mysql5.7.12安装教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • mysql Community Server 5.7.19安装指南(详细)

    mysql Community Server 5.7.19安装指南(详细)

    这篇文章主要介绍了mysql Community Server 5.7.19安装指南(详细),需要的朋友可以参考下
    2017-10-10
  • mysql 8.0.18 mgr 搭建及其切换功能

    mysql 8.0.18 mgr 搭建及其切换功能

    这篇文章主要介绍了mysql 8.0.18 mysql搭建及其切换功能,本文通过实例代码给大家讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • MySQL缓存的查询和清除命令使用详解

    MySQL缓存的查询和清除命令使用详解

    这篇文章主要介绍了MySQL缓存的查询和清除命令使用详解,对于一些不常改变数据且有大量相同sql查询的表,查询缓存会显得比较有用一些,需要的朋友可以参考下
    2015-12-12
  • MySQL存储引擎MyISAM与InnoDB区别总结整理

    MySQL存储引擎MyISAM与InnoDB区别总结整理

    今天小编就为大家分享一篇关于MySQL存储引擎MyISAM与InnoDB区别总结整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL WorkBench管理操作MySQL教程

    MySQL WorkBench管理操作MySQL教程

    MySQL Workbench提供DBAs和developers一个集成工具环境,方便管理mysql数据库,这里简单介绍下MySQL Workbench使用方法,需要的朋友可以参考下
    2014-03-03

最新评论