我在Windows上使用mySQL Workbench时,我绝对不得不这样做,否则就是ADO。
我在Jet数据库方面经验丰富,您只需创建mdb文件,随时随地将其放在任何位置,然后使用包含数据库路径的ADO连接字符串打开数据库。
现在我必须做这个可怜的mySQL事情...出于某种原因,我不明白这个数据目录中所有的数据库都去了,你不能改变在创建数据库时(?)。
所以我将我的数据库创建为一个shell(稍后要删除的1个垃圾表,没有记录),它被困在这个毫无价值的数据目录中。现在我想将这个shell复制/粘贴到我真正想要的地方,并开始通过ADO来创建我的"真正的"数据库...但它没有工作;我的ADO连接字符串包含新路径,连接打开时没有错误,但所有操作只更改数据目录中的副本。
是的,我已经搜索了这个主题,以及唯一的"解决方案"我看到要更改ini文件中的默认数据目录......这看起来很愚蠢且不可行;如果我想创建另一个数据库并将其放在其他地方怎么办?
有人可以在这里说清楚吗?
答案 0 :(得分:1)
一旦以可以创建数据库的用户身份连接到MySQL数据库,通常是安装后的root
用户,您只需编写:
CREATE DATABASE my_database;
该数据库将在MySQL正在使用的datadir
中运行MySQL服务器进程的机器上创建。 There are default locations for these things,但您可能不必担心它们。正如第一位评论者所说,您不必担心文件的最终位置。
Here is the information for finding your my.cnf file on Windows。找到该文件后,将datadir
更新为您想要的位置:
datadir="C:\New Data\Path"
然后停止MySQL服务器并移动文件。将当前datadir中的所有文件复制到MySQL服务器后重新启动MySQL服务器。您可以使用以下命令找到当前的datadir
(以root
用户身份连接到服务器):
SHOW VARIABLES LIKE '%datadir%';
确保在移动文件之前停止服务器。
CREATE TABLE documentation表示您可以在TABLESPACE
之外的datadir
中创建一个表格。首先创建一个如下所示的表空间:
CREATE TABLESPACE my_tablespace ADD DATAFILE 'C:\my_space';
如果要使用InnoDB引擎,需要是单个文件。然后,您可以通过在表格的创建中指定表格来在该表空间中创建表格:
CREATE TABLE new_table (a INT) TABLESPACE my_tablespace;
我以前没有这样做过,但它应该有效。