Ставим MySQL на MAC OS и систему управления к ней

01.07.2013

В этом посте я напишу мини мануал как поставить на MAC MySQL и мы решим задачку из нашего поста про БД

MySQL

Начнем с простого. Идем сюда и качаем DMG  c MySQL для вашего железа и версии ОС. Я скачал для 10.7 и 64 битной ОС. Размер примерно 150 мегабайт.

После скачивания в папке Загрузки (Downloads) появится файл mysql-XXXXXXXXX.dmg, Его двойным кликом открываем и видим внутри два пакета:

  1. mysql-XXXXXXXXXX.pkg — сам сервер MySQL;
  2. MySQLStartupltem.pkg — настройка для автозапуска .

ставим их, запускаем установленный сервер, командой в терминале:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

В первый раз запускается достаточно долго. Как консольку отпустит можно проверить что сервер запустился командой sudo ps ax | grep mysql

Для удобства создаем  алиасы для консоли управления сервером mysql и утилиты администрирования сервера mysqladmin:

alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

Устанавливаем пароль администратора MySQL-сервера:

mysqladmin -u root password 'новый пароль'

Теперь у нас есть настроенный и работающий MySQL сервер. Но из консоли не очень удобно работать и мы поставим утилиту управления sequelpro. Берем ее тут. Ставится как и практически  всегда  из DMG. Единственно что в инсталяторе нет папочки Программы и приходится перетаскивать программу вручную. Запускаем указываем 127.0.0.1 в качестве адреса и логин пароль для подключения

Выглядит она практически как и все подобные программки.

Sequel-Pro-Scaled

 

Главное работает и это радует.

Вернемся к нашей задаче. Напомню у нас есть структура БД:

sql

 

Нужно составить запрос выводящий проекты которыми занят разработчик с id=3

Создаем ее в sequelpro и заполняем тестовыми данными.

 

CREATE TABLE `developers` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `developers` (`id`, `name`)
VALUES
(1,’i am’),
(2,’vasya’),
(3,’petya’);

CREATE TABLE `developers_projects` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`project_id` int(11) DEFAULT NULL,
`developer_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `developers_projects` (`id`, `project_id`, `developer_id`)
VALUES
(1,4,1),
(2,4,2),
(3,4,3),
(4,1,1),
(5,1,3),
(6,2,1),
(7,3,1),
(8,3,3);

CREATE TABLE `projects` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `projects` (`id`, `name`)

VALUES
(1,’testing app’),
(2,’programming app test’),
(3,’Programming mega app’),
(4,’drinking beer’);

 

В этом случае наш запрос будет выглядеть так:

select  projects.name, developers.`name` from `developers_projects` inner join `projects` on `project_id` = projects.`id` inner join developers on `developer_id`=developers.`id` where `project_id`=3;

 

Комментариев нет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *