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

简介MySQL数据库文件位于/var/lib/mysql下。
有时,由于存储规划等原因,需要更改MySQL数据库的数据存储目录。
下面总结一下该过程的操作步骤。
话不多说,我们来看一下方法如下:1:查看MySQL数据库存储目录[root@DB-Servertmp]#mysqladmin-uroot-pvariables|grepdatadirEnterpassword:|datadir|/var/lib/mysql/2。
关闭MySQL更改目录之前必须关闭MySQL服务。
方法一:[root@DB-Server~]#servicemysqlstatusMySQLrunning(9411)[确定][root@DB-Server~]#servicemysqlstopShuttingdownMySQL-Server~]#/etc/rc.d/init.d/mysqlstatusMySQLrunning(8900)[ok][root@DB-server~]#/etc/rc.d/init.d/mysqlstopShuttingdownMySQL..[ok][root@DB-Server~]#3:新建数据库存储目录[root@DB-Server~]#cd/u01[root@DB-Serveru01]#mkdirmysqldata4:将MySQL数据目录移动到新位置[root@DB-Server~]Server~]#mv/var/lib/mysql/u01/mysqldata/5:编辑配置文件my.cnf并非所有版本都包含MySQL版本中的配置文件my.cnf5.5、部分MySQL版本该文件位于/usr/my.cnf/目录下.cnf配置文件,请到/usr/share/mysql/找到*.cnf文件,将其中之一复制到/etc/并将其放入我的更改为.cnf。
命令为:[root@DB-Servermysql]#cp/usr/share/mysql/my-medium.cnf/etc/my.cnf编辑/etc/my.cnf文件,修改参数socketMySQL5.5版本以下选项为传递给所有MySQL客户端[client]#password=your_passwordport=3306socket=/u01/mysqldata/mysql/mysql.sock#以下是一些特殊的programs#TheMySQLserver[mysqld]port=3306socket=/u01/mysqldata/mysql/mysql.sockskip-external-lockingkey_buffer_cket_size=16Mpaxtffer_size=512Knet_buffer_length=8Kread_buffer_size=256Kread_rnd_buffer_size=512Kmyisam_sort_buffer_size=8M6:初始化脚本修改/etc/init.d/mysql,将参数datadir修改为datadir=/u01/mysqldata/mysql/7:启动MySQL服务并验证MySQL数据库路径[root@DB-Server~]#sservicemysqlstartStartingMySQLatdir生成的文件。
我正在寻找有关mysql.sock文件的信息:mysql.sock是用于套接字连接的文件。
也就是说,该文件仅在您的守护进程启动时存在。
但是你的mysql程序(这个程序是客户端,服务器是mysqld)可以选择是否使用mysql.sock文件来连接(因为这种方法只适合连接Unix主机上的本地mysqld)到任何非本地主机。
那么这个文件是绝对必要的吗?这需要进一步解释。
2:我阅读了一些网络如何更改MySQL数据路径的摘要,一些网络更改了新创建的目录。
许可要办一些手续,有的不需要给许可,我知道,也没有问题。
我需要允许新的数据库目录吗?3:我尝试MySQL_5.6.20版本时,没有修改my.cnf,只是改了初始化脚本/etc/init.d/mysql,没有问题。
没有生成mysql.sock文件。
4:如果不禁用Selinux,修改MySQL数据路径后启动MySQL服务时会遇到一些错误。
对此的解释是后台服务必须对相应的目录有相应的权限,而mysql默认路径/var/lib/mysql添加了相应的策略,修改路径后没有相应的策略,导致后台进程被selinux阻止读取文件,导致权限错误。
因此关闭Selinux或调整文件安全上下文。
[root@DB-Servermysql]#/etc/init.d/mysqlstartStartingMySQL...服务器退出而不更新PID文件(/u01/mysqldata/mysql//DB-Server.localdomain.pid)。
[失败。
][root@DB-Servermysql]#[root@DB-Servermysql]#chcon-R-tmysqld_db_t/u01/mysqldata/mysql/[root@DB-Servermysql]#/etc/init.d/mysqlstartStarting][OKL。
root@DB-Servermysql]#summary

mysql如何修改数据库数据的存储位置?

修改MySQL数据库数据的存储位置;建议执行以下步骤:首先,备份现有数据库,以防出现意外情况。
第二,找到MySQL配置文件,通常名为my.cnf或my.ini。
文件位置在Windows系统下的MySQL安装目录如Linux系统下的C:\ProgramFiles\MySQL\MySQLServerx.x\,它位于/etc/mysql/或/etc/目录中。
然后,打开并编辑配置文件;使用文本编辑器找到并修改datadir参数,该参数指定MySQL数据库文件的存储位置。
例如,将datadir参数值更改为datadir="D:/mydata/",将数据存储在D:\mydata目录中。
保存并关闭配置文件;然后在更新数据存储位置之前停止MySQL服务。
停止服务的方式取决于操作系统和MySQL安装方法,在Windows系统上可以使用“服务”应用程序或命令行(例如Linux系统上的netstopmysql、systemctlstopmysql或/etc/init.d/mysqlstop)。
然后将旧位置数据库文件移动到新的存储位置,确保默认配置目录不变,同时MySQL服务(例如mysql用户)如果用户有新位置。
对文件适当的读写权限检查新位置中的文件权限以确保。
完成上述步骤后,重新启动MySQL服务。
在Windows系统上;“服务”应用程序或命令行(例如Linux系统上的netstartmysql);使用systemctlstartmysql或/etc/init.d/mysqlstart等命令。
最后,登录MySQL并运行基本查询操作以验证数据库是否正常工作并且没有数据丢失。
此外,检查新的存储位置以验证数据库文件是否已迁移并正确访问。
请注意,这些步骤可能会根据您的具体环境和MySQL版本而有所不同。
在生产环境中执行此操作时要小心,并确保您完全理解每个步骤的含义和潜在影响。

Ubuntu下更改MySQL数据库存储位置

以下是在Ubuntu中更改MySQL数据库存储位置的步骤:在gedit中找到datadir这一行,将等号后面的内容改为/home/mysql,然后保存退出。
从Ubuntu7.10开始,Ubuntu开始使用名为AppArmor的安全软件。
创建新数据库的命令是CREATEDATABASEmysqldb,并在默认存储位置创建数据库文件夹。
在操作数据库之前,必须停止数据库进程:$sudo/etc/init.d/mysqlstop。
以转移到/home/mysql位置为例,将原数据库转移到新位置的命令是$sudocp–R–p/var/lib/mysql/home/mysql。
编辑MySQL配置文件$gksugedit/etc/mysql/my.cnf,在gedit中找到datadir行将等号后面的内容修改为/home/mysql,然后保存退出。
除非修改AppArmor配置文件,否则不会为新设置的数据库存储位置启动数据库服务。
配置AppArmor的命令是$sudonano/etc/apparmor.d/usr.sbin.mysqld。
在gedit中,找到/var/lib/mysql/这两行并将其注释掉,在这两行之前添加“#”符号将其注释掉。
/home/mysql/r,/home/mysql/**rwk在两行之前或之后添加内容。
保存并退出并运行$sudo/etc/init.d/apparmorreload命令。
表示可以通过返回ReloadingAppArmorprofiles:done:$sudo/etc/init.d/mysqlstart来重新启动MySQL服务。
如果运行$sudo/etc/init.d/apparmorreload返回错误消息:Skippingprofile/etc/apparmor.d/usr.sbin.mysqld~:Warning并且MySQL服务无法启动,请编辑配置文件:使用图形界面文本编辑器,影响AppArmor读取配置文件的能力。
首先,删除文件$sudorm/etc/apparmor.d/usr.sbin.mysqld~,然后使用终端文本编辑器$sudonano编辑配置文件。

如何更改在Ubuntu下的MySQL的默认数据库存储位置

创建mysqldb数据库默认数据库存储位置下会有一个mysqldb文件夹。
要使数据库工作,首先必须停止数据库进程:$sudo/etc/init.d/mysql​stop本文以/home/mysql位置为例。
以下命令会将原始数据库传输到新位置。
:$sudo​cp​–R​–p​/var/lib/mysql/home/mysql编辑MySQL配置文件:$gksugedit/etc/mysql/my.cnf在gedit中找到datadir行,修改等号后面的内容/home/mysql,保存并退出。
从Ubuntu7.10开始,Ubuntu使用名为AppArmor的安全软件。
该安全软件在您的文件系统中创建一个区域,允许应用程序访问它(技术术语:应用程序访问控制)。
如果不修改MySQL的AppArmor配置文件,您将永远无法为新定义的数据库存储位置启动数据库服务。
配置AppArmor:$sudonano/etc/apparmor.d/usr.sbin.mysqld在gedit中找到/var/lib/mysql/这两行,注释掉这两行,并在这两行前面添加#符号。
可以注释掉,在这两行之前或之后添加以下内容:/home/mysql/r,/home/mysql/**rwk,保存退出,运行命令:$sudo/etc/init.d/apparmorreload返回ReloadingAppArmorprofiles:done然后您可以重新启动MySQL服务:$sudo/etc/init.d/mysqlstart。
至此,MySQL数据库就存储完成了。
位置已更改。
常见问题解答:问:当我运行$sudo/etc/init.d/apparmorreload时,返回跳过配置文件/etc/apparmor.d/usr.sbin.mysqld~:Warning.gedit,像这样的命令编辑usr.sbin。
mysqld,这两个GUI文本编辑器都会在同一位置生成usr.sbin.mysqld~文件,从而影响AppArmor读取配置文件的能力。
如果出现这个问题,首先删除usr.sbin.mysqld~。
文件:然后使用终端文本编辑器$sudonano编辑配置文件。

如何更改在Ubuntu下的MySQL数据库存储位置

很多时候mysql的数据会很大,数据默认放在/var/lib/mysql中,因为/var划分的空间不够大,所以我们需要修改mysql的数据存放路径,放到里面。
一个大的分区,以便它可以处理随着MySQL数据的增长。
www.2cto.com1。
设置新的存储路径mkdir-p/data/mysql2。
将原始数据复制到cp-R/var/lib/mysql/*/data/mysql3。
rmysql:mysql/data/mysqlwww.2cto.com4修改配置文件vim/etc/mysql/my.cnfdatadir=/data/mysql5。
修改启动文件vim/etc/apparmor.d/usr.sbin.mysqld#将/var/lib/mysqlr,/var/lib/mysql/**rwk,#改为/data/mysqlr,/data/mysql/**rwk、6.重启服务并重新启动apparmor/etc/init.d/apparmorrestart/etc/init.d/mysqlrestart已完成