В этом посте я напишу мини мануал как поставить на MAC MySQL и мы решим задачку из нашего поста про БД
Начнем с простого. Идем сюда и качаем DMG c MySQL для вашего железа и версии ОС. Я скачал для 10.7 и 64 битной ОС. Размер примерно 150 мегабайт.
После скачивания в папке Загрузки (Downloads) появится файл mysql-XXXXXXXXX.dmg, Его двойным кликом открываем и видим внутри два пакета:
- mysql-XXXXXXXXXX.pkg — сам сервер MySQL;
- 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 в качестве адреса и логин пароль для подключения
Выглядит она практически как и все подобные программки.
Главное работает и это радует.
Вернемся к нашей задаче. Напомню у нас есть структура БД:
Нужно составить запрос выводящий проекты которыми занят разработчик с 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;
Комментариев нет