我在本地计算机上使用MySQL 5.5来分析大量政府数据。我创建了一个本地数据库,该数据库位于默认驱动器(Win7 C:驱动器)上。我想将数据存储在E:驱动器(大型eSATA外部驱动器)上。
我应该采取什么步骤?
我在本地计算机上使用MySQL 5.5来分析大量政府数据。我创建了一个本地数据库,该数据库位于默认驱动器(Win7 C:驱动器)上。我想将数据存储在E:驱动器(大型eSATA外部驱动器)上。
我应该采取什么步骤?
Answers:
datadir
参数中检出该位置)。my.ini
文件(位于mysql安装目录中)。更改datadir
参数值以指向新位置。/
\而不是\作为目录路径中的目录分隔符datadir
。我在Windows 10上使用WAMPserver。–
尽管您要使用Windows,但对于那些最终在此寻找linux / ubuntu方向的人,这里有一些好的指导:
假设:
/mountpoint/var/lib/mysql
,可能来自已死机或旧安装的计算机/var/lib/mysql
- 停止MySQL的使用:
sudo /etc/init.d/mysql stop
。- 使用以下命令备份当前(干净的)MySQL数据目录
sudo cp -Rp /var/lib/mysql /var/lib/mysql.backup
。- 然后使用以下命令从旧驱动器中复制旧数据目录:
sudo cp -Rp /mountpoint/var/lib/mysql /var/lib/mysql
wheremountpoint
是安装路径。- 现在使用以下命令重启MySQL:
sudo /etc/init.d/mysql start
运气好的话,MySQL应该重新启动,并且您应该恢复旧数据库。
从5.6版本开始,不再分发MySQLInstanceConfig.exe。此功能已由安装程序取代。http://bugs.mysql.com/bug.php?id=66306
[ERROR] Cannot find or open table <db>/<table> from the internal data dictionary of InnoDB though the .frm file for the table exists.
。如何确保权限设置正确?
对于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
REG_EXPAND_SZ
值中:
该字符串的默认值为: "C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server x.x\my.ini" MySQLXX
因此,最重要的是,在这种情况下,要移动数据文件,您必须遵循@ITCuties发布的步骤并进行一些补充。
完整步骤如下:
DataLocation
注册表值以找到当前my.ini
文件位置,如果您还想移动my.ini
文件,请更新DataLocation
路径并将my.ini
文件移动到该新路径。my.ini
文件的位置,则需要更新上面列出的服务命令注册表项中的路径。my.ini
文件,找到datadir
参数。将文件从该datadir
路径移动到您想要数据驻留的路径,然后还datadir
使用此新路径更新参数。