0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

更改MySQL数据库的数据存储目录实践过程的操作步骤

电子工程师 来源:未知 作者:李倩 2018-11-06 10:29 次阅读

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

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]#

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据存储
    +关注

    关注

    5

    文章

    879

    浏览量

    50559
  • 数据库
    +关注

    关注

    7

    文章

    3561

    浏览量

    63292
  • MySQL
    +关注

    关注

    1

    文章

    772

    浏览量

    25958

原文标题:MySQL 更改数据库数据存储目录

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview有调用mysql数据库问题????

    labview有调用mysql数据库,请问labview打包成exe安装档,怎么把mysql数据库打包进来,是mysql
    发表于 05-19 16:17

    python实战数据库MySQL---4操作MySQL

    () print valuescursor.close() tkMessageBox.showwarning(u'保存成功')实现数据库连接的过程都在代码里,有很多的不足,如读出来时的汉字显示,id的自动增减,还有
    发表于 01-09 21:21

    mysql数据库设计步骤

    mysql数据库设计和优化
    发表于 05-13 11:00

    详解Mysql数据库InnoDB存储引擎事务

    关于Mysql数据库InnoDB存储引擎事务的一点理解
    发表于 05-13 10:11

    mysql数据库操作指南

    mysql数据库sql语句基础知识
    发表于 09-18 09:06

    Python操作Mysql实现数据库脚本的方法概述

    Python操作Mysql数据库脚本(cmd)
    发表于 10-08 10:44

    MySQL数据库使用

    关于MySQL数据库的简单操作
    发表于 10-24 14:32

    Mysql数据库的基本操作

    Mysql数据库入门-基本操作
    发表于 06-08 17:18

    PHP+MySQL数据库编程步骤是怎样

    PHP+MySQL数据库编程的步骤
    发表于 06-15 15:51

    源头开始呈现labview连接MYSQL数据库过程样本

    装的都是32位的,所有在MYSQL安装结束后,需要在mysql网站上下载并安装 mysql CONNETER/ODBC 32位 版本的数据库连接驱动;二、建立
    发表于 09-25 16:25

    MySQL数据库Access存储读取SQL语句

    LabVIEW视频教程MySQL数据库Access存储读取SQL语句
    发表于 10-21 11:59

    如何通过NodeMCU将传感器数据存储MySQL数据库

    本文将演示如何通过 基于 ESP8266 的 NodeMCU,把通过 DHT11 传感器搜集到的温、湿度数据通过 MQTT 协议将其存储MySQL 数据库,便于后续对
    发表于 11-03 08:34

    MYSQL数据库中大小写敏感是如何控制的

    名和表名的大小写敏感由参数lower_case_table_names控制,为0时表示区分大小写,为1时,表示将名字转化为小写后存储,不区分大小写。在mysql中,数据库对应数据
    发表于 10-21 14:35

    mysql数据库存储路径怎么更改

    大家知道mysql数据库存储路径怎么更改吗?在初次安装mysql 的时候将数据库目录安装在了系统
    的头像 发表于 10-18 10:23 6098次阅读

    Ubuntu下面更改MySQL数据库数据存储目录遇到的问题

    我将MySQL数据库数据存储目录从/var/lib/mysql 切换到/
    的头像 发表于 11-08 14:22 2740次阅读
    Ubuntu下面<b class='flag-5'>更改</b><b class='flag-5'>MySQL</b><b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>存储</b><b class='flag-5'>目录</b>遇到的问题