我在本地计算机上使用MySQL 5.5来分析大量政府数据。我创建了一个本地数据库,该数据库位于默认驱动器(Win7 C:驱动器)上。我想将数据存储在E:驱动器(大型eSATA外部驱动器)上。

我应该采取什么步骤?

#1 楼


关闭mysql。
将当前数据目录中的所有文件移动到新位置(在步骤3-datadir参数中检出位置)。
找到my.ini文件(位于mysql安装目录中)。更改参数值datadir以指向新位置。
启动mysql。


评论


我发现我必须使用/而不是\作为datadir目录路径中的目录分隔符。我正在Windows 10上使用WAMPserver。

–史蒂夫
16-10-16在6:59



ProgramData目录可能隐藏在文件浏览器中。我以为它不存在,直到我将设置更改为显示“隐藏文件”。

–WestAce
18年2月21日在19:00

在较新的版本中,my.ini文件位于C:/ ProgramData / MySQL文件夹中。也不要使用Windows记事本对其进行编辑。使用Notepad ++或类似的方法,因为Notepad会更改文件编码,并且MySQL服务在启动时将无法解析文件。

– Mark1270287
20-2-4在2:57

我必须根据此答案将网络服务权限添加到文件夹。

– Nae
20 May 19 '21:32

#2 楼

尽管您要使用Windows,但对于那些最终在这里寻找linux / ubuntu方向的人来说,这里有一些好的指导:

假设:


您有mysql数据在外部/ usb /备用驱动器/mountpoint/var/lib/mysql上,也许是从已死机或旧安装的计算机上下载的
您希望将其移动到本地的新Ubuntu安装/var/lib/mysql



>
使用sudo /etc/init.d/mysql stop停止MySQL。
使用sudo cp -Rp /var/lib/mysql /var/lib/mysql.backup备份当前(干净的)MySQL数据目录。
然后使用以下命令从旧驱动器复制旧数据目录:sudo cp -Rp /mountpoint/var/lib/mysql /var/lib/mysql其中mountpoint是安装的路径。
现在使用以下命令重新启动MySQL:sudo /etc/init.d/mysql start


运气好的话,MySQL应该重新启动,并且您应该恢复旧的
数据库。


来源mb_webguy@ubuntuforums.org

评论


(!)这将不起作用,因为配置仍指向旧位置

– ADOConnection
18年7月11日在10:50

#3 楼

解决方案1:首先,使用`mysqldump'备份数据。
如果从官方程序包安装Mysql Server,则可以通过从以下位置运行程序MySQLINstanceConfig.exe来实现:服务器的bin目录。
导入数据



第二个解决方案(不推荐,但可在同一台机器上使用)

< br停止Mysql服务器。
将数据从数据目录复制到新目录
打开my.cnf文件(在我的情况下为“ C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ my.ini” )
查找类似datadir =“ C:\ ProgramData \ MySQL \ MySQL Server 5.5 \ data \”的行,并将路径更改为新位置
启动服务器

从版本开始5.6 MySQLInstanceConfig.exe不再分发。此功能已由安装程序取代。 http://bugs.mysql.com/bug.php?id=66306

#4 楼

对于Windows,自MySQL Installer 1.4.6(2015-04-07)起,可以在注册表项中指定数据位置,该注册表项指定my.ini文件的位置,因此,如果数据最初是使用非默认方式安装的, my.ini的位置将不在C:\ProgramData\MySQL\MySQL Server x.x\中。

注册表值的位置是(至少从MySQL 5.6开始):

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server x.x\

Location是一个REG_SZ,它指向MySQL应用程序文件所在的文件夹;默认情况下:C:\Program Files\MySQL\MySQL Server x.x\

DataLocation是一个REG_SZ,它指向my.ini所在的文件夹;默认情况下也:C:\Program Files\MySQL\MySQL Server x.x\

此外,my.ini文件路径也包含在此注册表项下的service命令中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQLXX ImagePath值中的<43。该字符串的默认值为:REG_EXPAND_SZ

因此,最重要的是,在这种情况下,要移动数据文件,您必须遵循@ITCuties发布的步骤,并添加一些补充。
<完整步骤如下:


关闭mysql。
查找上面的"C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server x.x\my.ini" MySQLXX注册表值以找到当前的DataLocation文件位置,如果您还想要移动my.ini文件更新my.ini路径并将DataLocation文件移动到此新路径。
如果要更改my.ini文件的位置,则需要更新上面列出的服务命令注册表项中的路径。 />打开my.ini文件,找到my.ini参数。将文件从此datadir路径移动到您想要数据驻留的路径,然后还使用此新路径更新datadir参数。
启动mysql。