2016-11-13 6 views
-2

Я нахожусь в Windows с помощью mySQL Workbench, когда мне это абсолютно необходимо, иначе ADO.Как найти новую базу данных mySQL, где я хочу?

У меня есть опыт работы с базами данных Jet, где вы просто создаете свой файл mdb, размещаете его везде, где хотите, и открываете базу данных с помощью строки подключения ADO, содержащей путь к базе данных.

Теперь мне нужно сделать эту жалкую вещь mySQL ... по какой-то причине я не понимаю, что есть этот каталог данных, куда идут все базы данных, и вы не можете изменить это при создании базы данных (?).

Итак, я создаю свою базу данных как оболочку (1 удаленная таблица будет удалена позже, без записей), и она застряла в этом бесполезном каталоге данных. Теперь я хочу скопировать/вставить эту оболочку туда, где я ее действительно хочу, и начать работать над ней через ADO для создания моей «реальной» базы данных ... но она не работает; моя строка соединения ADO содержит новый путь, и соединение открывается без ошибок, но все операции только изменяют копию в каталоге данных.

Да, я искал эту тему, и единственными «решениями», которые я вижу, является изменение каталога данных по умолчанию в ini-файле ... это кажется глупым и неработоспособным; что, если я хочу создать другую базу данных и поместить ее в другое место?

Может кто-то пролить свет здесь?

+3

MySQL - это _database server_, это нечто совершенно иное по сравнению с файлом _database_.Возможно, файлы базы данных, с которыми вы сталкиваетесь, можно сравнить с 'sqlite'. Это также файловые базы данных. С другой стороны, база данных _server_ отличается: это автономный процесс, независимо от вашего приложения программного обеспечения. Вы только _use_ это, это означает, что вы не должны делать какие-либо операции с файловой системой, и вы ничего не интересуетесь. Вы просто подключаетесь и используете, и это при производительности, полностью опережающей системы баз данных на основе _all_. Это еще одна лига. – arkascha

ответ

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 и перемещать файлы. Перезагрузите сервер MySQL после копирования всех файлов в текущем datadir. Вы можете найти свой текущий 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; 

Я не сделал этого раньше, но он должен работать.

+0

Хорошо спасибо за ответы, и, пожалуйста, несите мое невежество. Я не думаю, что у меня возникли проблемы с созданием базы данных - результат, похоже, тот же, независимо от того, создаю ли я его с помощью Workbench или CREATE DATABASE. Проблема в том, что файлы, составляющие базу данных, похоже, застряли неподвижно в местоположении по умолчанию, и это терабайтные базы данных, которые я планировал использовать на 1 диске 2 ТБ для каждой базы данных ... есть ли способ сделать это, используя только один экземпляр mySQL-сервера? – dts

+0

Спасибо за обновление, но я уже знаю, как это сделать (и я сделал это на практике, поэтому я знаю, что он работает) ... но есть еще только один datadir по умолчанию, поэтому он не затрагивает мою проблему (кроме Я здесь что-то пропустил). BTW Я редактирую my.ini, так как у меня нет my.cnf. – dts

+0

Правильно, но я работаю с двумя или более базами данных, каждая из которых должна быть на разных дисках ... как я могу это сделать, когда есть только один каталог по умолчанию? – dts

Смежные вопросы