Можно ли использовать одну и ту же базу данных MySQL для Windows (XAMPP) и Linux (LAMP)?

У меня есть двойная загрузка с Windows 7 и Ubuntu 10.

В Windows 7 У меня установлен XAMPP, на Linux У меня установлена ​​LAMP.
Возможно ли иметь только одну базу данных MySQL для обеих операционных систем?

Я хочу сделать это, потому что я хочу использовать Ubuntu для работы (без каких-либо программ, которые могут замедлить мою работу - Google Talk, ICQ, например) и Windows 7 просто для удовольствия, но я хочу иметь возможность внести небольшие изменения в script, который я программирую. Есть ли способ достичь этого?

Ответ 1

в вашем my.ini (в Windows он находится где-то вроде C:\Program Files\MySQL\MySQL Server 5.1. Это основной файл конфигурации для MySQL), вы должны иметь следующую строку:

datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/" например

измените его как в Windows, так и на Linux Ubuntu, чтобы указать на одну физическую папку (на разделе с файловой системой, которую может распознать Windows). Это будет работать. Форматы файлов идентичны.

Если вы загружаетесь с Ubuntu или Windows 7, это не имеет значения, две разные сборки MySQL будут искать данные в одном месте. После изменения данных в среде Windows вы загружаетесь из Ubuntu, и данные там изменены.

Ответ 2

Хотя это и не идеально, это должно быть хорошо, если:

  • В обеих операционных системах вы используете идентичные версии MySQL.

  • Вы завершаете mysqld перед копированием файлов данных. (Если вы собираетесь копировать файлы данных между разделами, а не хранить их на общем разделе fat32).

По сути, до тех пор, пока MySQL работает на архитектуре с той же "контентой", форматы файлов должны быть переданы.

В качестве предложения вы можете просто закрыть ICQ и т.д. и использовать свободную память для запуска Ubuntu в VirtualBox виртуальной машине на в верхней части Windows 7 - следовательно, вы можете тривиально получить доступ к своей среде разработки без перезагрузки и т.д.

Это действительно неплохая настройка, так как вы можете использовать среду разработки Windows, если хотите, и просто размещать данные веб-сайта сайта на монте Samba на виртуальной машине Ubuntu.

Ответ 3

Пока данные разделяются/перезаписываются/записываются в обе ОС, и оба формата файлов одинаковы для обеих ОС, он должен быть выполнимым

Первой проблемой, которую я могу себе представить, является нечувствительность к регистру в окнах.
поэтому, конвертируйте свою базу данных/таблицу ti camel_case (или camelcase), если вы всегда используете CamelCase.

Дополнительная информация для чтения - http://dev.mysql.com/doc/refman/5.0/en/limits-windows.html

Ответ 4

Конечно, вы можете.
Но я не думаю, что это возможно для вашей двойной системы загрузки.

Предположим, что ваш сервер MySQL установлен под машиной Win7. Вы можете получить доступ к нему из среды Win7 и даже из среды Linux (если вы не запрещаете доступ к настройкам вашего сервера MySQL). Система, в которой установлен ваш MySQL, должна быть запущена! Затем вы можете получить к ней доступ из нескольких систем, если это разрешено; -)

Ответ 5

Я долго смотрел и обнаружил, что работа с ядром Linux является разрешимым и приемлемым решением.

Vagrant

Это инструмент для создания и управления средами виртуальных машин в одном рабочем процессе. Основная причина, по которой я утверждаю, что вы используете vagrant, состоит в том, что она не слишком тяжелая и не поглощает много ресурсов вашего компьютера. Я считаю, что вы прошли через документацию о бродягах, которая позволит вам запустить машину на базе Linux на вашей физической машине.

Предположим, что хост-машине присвоен IP 192.168.1.2, а виртуальная машина имеет IP-адрес как 192.168.1.10 и убедитесь, что хост и гостевая машина могут видеть друг друга. Пожалуйста, внимательно прочитайте раздел "Сеть" , чтобы настроить конфигурацию сети.

Проверка соединения между хостом и гостевой машиной

Установить MySQL Server

MySQL - это система управления базами данных. В принципе, он организует и обеспечивает доступ к базам данных, где наш сайт может хранить информацию.

Откройте терминал в машине, который был настроен на предыдущем шаге. Выполните следующую команду:

sudo apt-get install mysql-server-5.6

Примечания. До версии дистрибутива Linux эта команда будет настраиваться в соответствии с вашими потребностями. Для установки я использовал ядро ​​Ubuntu 14.04, см. Ссылку .

Во время установки ваш сервер попросит вас выбрать и подтвердить пароль для пользователя MySQL root. Это административная учетная запись в MySQL, которая имеет повышенные привилегии.

Проверка установки На терминале в гостевой машине (то есть на виртуальной машине) выполните следующую команду:

mysql -u root -p

запросит пароль MySQL, а затем предоставит тот, который вы установили во время установки MySQL Server. Ниже приведен снимок экрана, если вы отправляете правильную информацию на сервер MySQL.

введите описание изображения здесь

Поверните MySQL Server удаленно доступным

Поскольку нам нужен централизованный сервер базы данных, где другие компьютеры могут обращаться к соответствующей базе данных и подключаться к ней. Снова откройте терминал и запустите следующие команды MySQL:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441' WITH GRANT OPTION; GRANT PROXY ON ''@'' TO 'root'@'192.168.1.2' WITH GRANT OPTION; FLUSH PRIVILEGES;

который 192.168.1.2 является IP-адресом хост-машины, а хэшированная строка password получает из таблицы user в базе mysql.

Хорошо. Вы можете отдохнуть и насладиться своим напитком, если до сих пор не было проблемы.

Проверка удаленного доступа

От терминала на главной машине запустите следующую команду:

mysql -h192.168.1.2 -uroot -p

который просит вас ввести пароль. Если корневые учетные данные верны, вы увидите скриншот, подобный приведенному выше. Следует обратить внимание на добавление -h192.168.1.2 после команды mysql, потому что мы не находимся на машине, на которой установлен сервер MySQL.

В целом, мы создали сервер MySQL, используемый как для хоста, так и для гостевой машины. В действительности, если у меня есть другая машина, назначенная 192.168.1.3, она также может подключаться к серверу базы данных и обмениваться данными между сервером и клиентом.