Можно ли использовать одну и ту же базу данных 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
, она также может подключаться к серверу базы данных и обмениваться данными между сервером и клиентом.