MySQL- засіб для створення баз даних

  1. Універсальний сервер баз даних з відкритим вихідним кодом Серверів баз даних на ринку сьогодні більш...
  2. Створення баз даних і звернення до них
  3. Підключення до MySQL з додатків Windows
  4. Робота з сервером MySQL з командного рядка
  5. Використання MySQL в сценаріях
  6. Сценарій управління модулями корекції
  7. Універсальність і низькі витрати
  8. Зумовлені облікові записи MySQL
Універсальний сервер баз даних з відкритим вихідним кодом

Серверів баз даних на ринку сьогодні більш ніж достатньо. В умовах такого достатку на потужні повнофункціональні рішення з відкритим вихідним кодом часто не звертають особливої ​​уваги. А адже деякі з цих серверів є цілком гідними конкурентами комерційних рішень за такими показниками, як продуктивність і надійність.

MySQL - це сервер бази даних стандарту SQL, розповсюджуваний як за комерційною ліцензією, так і за ліцензією продукту з відкритим вихідним кодом. Щоб поширювати продукти, що використовують MySQL, але не належать до категорії виробів з відкритим вихідним кодом (мова, наприклад, може йти про продукти, які розповсюджуються за ліцензією GNU General Public License-GPL), необхідно придбати ліцензію на використання MySQL. У всіх інших випадках платити за MySQL не потрібно - незалежно від того, як застосовується продукт: для створення складної системи управління мережею або розгортання Web-додатків в Internet.

Сервер MySQL відрізняється від інших рішень, таких як Microsoft SQL Server, тим, що в MySQL не передбачена можливість використання зовнішніх ключів, а також функції для роботи з деякими сучасними SQL-конструкціями, наприклад підзапитах. Ці функції будуть реалізовані в нових версіях програми, які в даний час проходять стадію альфа-тестування. Але поряд з відмінностями можна відзначити і чимало схожих рис. Так, MySQL забезпечує можливість тиражування, захист на рівні баз даних, таблиць і стовпців. У цьому виробі реалізований відкритий інтерфейс взаємодії з базами даних ODBC і можливості масштабування. Крім того, в комплект поставки MySQL входять інструменти командного рядка, що дозволяють працювати з сервером бази даних з вікна командного рядка або за допомогою сценаріїв оболонки; нарешті, продукт поставляється з графічними засобами управління, такими як MySQL Control Center (MySQLCC).

Установка MySQL на сервері

Перед тим як приступати до установки пакета MySQL, потрібно завантажити з Web-вузла MySQL ( http://www.mysql.com/downloads ) Новітню версію продукту (на момент написання цієї статті новою версією була версія 4.0.13). Завантаживши файли, слід розпакувати архів і, зареєструвавшись у системі під обліковим записом адміністратора, запустити утиліту setup.exe. Вона встановить на комп'ютері програмні файли MySQL. Даний пакет можна запускати на системах Windows 95 і пізніших версій, але я рекомендую встановлювати їх на Windows 2000 і пізніших версіях. За замовчуванням програма установки копіює файли MySQL в каталог C: mysql. Якщо MySQL встановлюється у виробничій системі, необхідно розглянути можливість розміщення даних і файлів журналів на окремому накопичувачі, як якщо б ви працювали з системою SQL Server. Справа в тому, що якщо виділити для розміщення даних і файлів журналів окремий накопичувач, то не доведеться турбуватися про те, що розростається база даних з часом поглине весь простір на основному жорсткому диску. Крім того, можна буде налаштувати файлову систему таким чином, щоб домогтися підвищення продуктивності і ефективності використання дискового простору без негативних наслідків для інших додатків.

По завершенні установки потрібно буде запустити службу MySQL. Необхідно запустити програму WinMySQLAdmin з підкаталогу mysqlin. Програма запропонує ввести ім'я користувача і пароль. Якщо ввести ці дані, WinMySQLAdmin збереже їх у файлі% USERPROFILE% windowsmy.ini з тим, щоб використовувати отриману інформацію в подальшому, при реєстрації на сервері MySQL. Втім, якщо потрібно всього лише випробувати процедуру установки, досить просто клацнути на кнопці Cancel, і програма WinMySQLAdmin відкриє, встановить і запустить службу MySQL, а потім автоматично згорне вікно і буде відображатися в системній панелі задач у вигляді значка світлофора.

Тепер завантажуємо програму MySQLCC ( http://www.mysql.com/downloads/mysqlcc.html ). Ця програма подібна до диспетчеру SEM (SQL Enterprise Manager) в тому сенсі, що вона дозволяє створювати і відключати (т. Е. Видаляти) бази даних і таблиці, а також задавати користувачів і списки управління доступом (ACL). MySQL поставляється з інструментальними засобами для командного рядка, частина з яких можна задіяти для управління MySQL або для вивантаження і завантаження баз даних і таблиць з метою подальшого резервування, але адміністраторам, які не мають досвіду роботи з MySQL, буде простіше користуватися програмою MySQLCC. В процесі розробки знаходиться ще більш зручний засіб: коли буде випущена програма MySQL Administrator, адміністратори отримають візуальний інтерфейс для виконання таких завдань, як створення баз даних і відстеження стану реплікації. Детальну інформацію про засіб MySQL Administrator можна отримати за адресою http://www.mysql.com/products/administrator .

У заархівованому дистрибутиві mysqlcc-0.9.4-win32.zip слід запустити на виконання програму setup.exe або mysqlcc.msi. В результаті буде активізований майстер MySQL Control Center Setup Wizard. Він встановить програму MySQLCC, до якої можна буде звертатися, вибравши в меню Start пункти Programs, MySQL Control Center, MySQL Control Center. Коли програма MySQLCC буде запущена в перший раз, вона запропонує ввести ім'я з'єднання (наприклад, My Connection), ім'я головної системи (наприклад, localhost, mysql.example.com) і реєстраційні дані для звернення до сервера MySQL. В поле User Name потрібно вказати ім'я головного користувача, а поле Password залишити незаповненим. За замовчуванням поле пароля для головного користувача MySQL, як і в облікового запису administrator систем SQL Server, залишається порожнім. Про те, як ліквідувати цю прогалину в системі безпеки, розказано в урізанні «Визначені облікові записи MySQL». Далі слід клацнути на кнопці Add і відкрити нове з'єднання, виконавши подвійне клацання на профілі для нового сервера MySQL.

Створення баз даних і звернення до них

Тепер можна приступити до створення бази даних. Відкривши з'єднання, ви побачите вікно диспетчера Console Manager програми MySQLCC. Правою клавішею миші слід клацнути на значку Databases, вибрати елемент New Database і в якості імені бази даних ввести NetworkData. Нижче я представлю сценарій, в якому ця база даних використовується для ідентифікації серверів, де потрібно встановити модулі корекції, а також для установки цих модулів.

Щоб створити таблицю в базі даних NetworkData, необхідно виконати подвійне клацання на NetworkData, а потім правою клавішею миші клацнути на Tables і вибрати New Table. Програма MySQLCC відобразить вікно з написом Creating Table in database «NetworkData». Як показано на екрані 1, дане вікно містить три стовпці: Field Name, Allow NULL (в цьому стовпці вказується, що відповідне поле може приймати значення null, тобто бути незаповненим) і Data Type. Оскільки цією базою даних належить користуватися для того, щоб фіксувати модулі корекції, необхідні для деяких серверів, ми будемо зберігати два значення: ім'я сервера і назва програми, що виконується на цьому сервері. У першому полі Field Name слід ввести значення Computer, і нехай varchar буде в Data Type. У друге поле Field Name потрібно ввести значення App, і знову хай varchar буде в Data Type. Далі потрібно клацнути на значку Save, зберегти таблицю під ім'ям ComputerApps і закрити вікно, в якому створювалася таблиця.

Як і будь-яка інша розрахована на багато користувачів система керування базами даних, MySQL надає доступ до баз даних, таблиць і колонок відповідно до облікових записів користувачів. Перш ніж створювати облікові записи, необхідно визначити, з яких комп'ютерів користувач буде підключатися до бази даних. Наприклад, якщо обліковий запис створюється для користувачів, наділених правами адміністративного управління базою даних MySQL, і необхідно, щоб адміністратори могли звертатися до цього запису тільки з серверної консолі MySQL, потрібно забезпечити для цього запису доступ тільки до локальної машині. Щоб забезпечити доступ до бази даних з будь-якої машини мережі, слід створити по одній облікового запису для кожної адреси комп'ютера віддаленого клієнта, де в якості адреси використовується або ім'я клієнта, або його TCP / IP-адресу. Є й інше рішення: при вказівці облікового запису в розділі Host записи можна просто використовувати знак відсотка (%). Знак% виступає в ролі символу шаблону і забезпечує доступ до бази даних з будь-якої віддаленої машини. Наприклад, одному співробітнику доведеться звертатися до бази даних тільки з серверів server1 і server2, а іншій потрібна доступ з будь-якої машини. У табл. 1 показані облікові записи, які потрібно створити для забезпечення доступу відповідно до вказаних умов.

1 показані облікові записи, які потрібно створити для забезпечення доступу відповідно до вказаних умов

Для бази даних NetworkData необхідно забезпечити доступ з будь-якої точки мережі, тому потрібно створити дві облікові записи - networkdata_user @ localhost і networkdata_user @%. Щоб створити ці записи, в вікні MySQLCC правою клавішею миші слід клацнути на елементі User Administration і вибрати New User. В поле Username потрібно ввести ім'я networkdata_user, в поле Host - ім'я localhost. Крім того, введіть пароль, як показано на екрані 2. Потрібно особливо зазначити, що networkdata_user має доступ до бази даних NetworkData; для цього на панелі Allow access to слід виставити прапорець, розташований поруч з networkdata. Нарешті, необхідно клацнути на кнопці Add (буде створений новий користувач) і на кнопці Close. Описані операції потрібно повторити, щоб створити ще один обліковий запис з тим же ім'ям користувача, але на цей раз в поле Host слід ввести символ%.

Підключення до MySQL з додатків Windows

Наступний етап - звернення до бази даних NetworkData з програми Windows, а саме з Microsoft Access. Для підключення до MySQL можна використовувати кілька методів, що дуже зручно в тих випадках, коли доводиться створювати інтерфейси для користувачів (тут кращий варіант - Access або навіть Visual Basic, VB) або для сценаріїв оболонки (в цьому випадку важливу роль відіграють засоби командного рядка MySQL ).

З клієнтської машини слід завантажити Connector / ODBC, ODBC-драйвер для MySQL з відкритим вихідним кодом (раніше відомий під назвою MyODBC). Його можна отримати за адресою http://www.mysql.com/downloads/api-myodbc.html . Потрібно клацнути на засланні, що вказує на новітню версію продукту, перейти в розділ продуктів, доступних для використання в середовищі Windows, і завантажити утиліту Driver Installer. При підготовці даної статті я користувався версією Connector / ODBC Driver Installer 3.51.06. Далі потрібно запустити установчу програму і слідувати інструкції.

Після цього необхідно налаштувати Data Source Name (DSN). DSN - це засіб, що забезпечує незалежність ODBC-з'єднань бази даних від використовують їх програм. Так, працюючи з Access, можна за допомогою Database Connection DSN встановити з'єднання з базою даних SQL Server. Пізніше, можливо, доведеться замість SQL Server встановити MySQL, для чого потрібно буде переналаштувати Database Connection DSN. Якщо ж зберегти для DSN ім'я Database Connection, не доведеться додатково налаштовувати та Access.

Щоб налаштувати DSN, слід відкрити меню Administrative Tools і запустити інструмент Data Sources (ODBC). Можна вибрати або User DSN, або System DSN. System DSN застосовуються в межах всієї системи, тоді як User DSN може використовуватися лише пройшли реєстрацію користувачем, який створив даний DSN ресурсу. Клацніть на кнопці Add, на елементі MySQL ODBC 3.51 Driver і на кнопці Finish. У вікні конфігурації MySQL Connector / ODBC є кілька полів, які належить заповнити. В поле Data Source Name слід ввести описову назву для DSN, наприклад NetworkData. В поле Host / Server Name (or IP) потрібно ввести ім'я сервера MySQL або адреса TCP / IP. В поле Name потрібно набрати символи NetworkData, а в полях User і Password - відповідно networkdata_user і відповідний пароль. Перед тим як продовжити роботу, необхідно переконатися, що з'єднання функціонує; для цього треба клацнути на Test Data Source.

Тепер ви можете звертатися до таблиць бази даних NetworkData з Access 2000. Потрібно виконати наступні операції:

Тепер ви можете, не виходячи з Access, редагувати дані таблиці ComputerApps. Для цього потрібно створити форму Access, як показано на екрані 3, або виконати подвійне клацання на значку ComputerApps у вікні Tables.

У міру заповнення таблиць бази даних NetworkData у вас з'явиться можливість створювати звіти на підставі її даних за допомогою таких засобів, як Crystal Reports компанії Business Objects, або вбудованої функції генерації звітів Access.

Робота з сервером MySQL з командного рядка

Одне з головних достоїнств сервера MySQL - це інструмент командного рядка Mysql, який за замовчуванням встановлюється в каталозі C: ​​mysqlin і не вимагає ODBC-з'єднання. За допомогою Mysql можна виконувати найрізноманітніші операції, від блокування таблиць бази даних до вставки і видалення рядків в таблиці, - і все це з командного рядка. Mysql можна використовувати як в інтерактивному, так і в командному режимі (наприклад, в якості пакетного файлу); це залежить від того, в якому форматі викликати цю команду. Щоб запустити Mysql в інтерактивному режимі, потрібно просто набрати команду в командному рядку і вказати ім'я головної машини, дані облікового запису та бази даних, яку передбачається використовувати, - так само, як я виконав все це в демонстраційному сеансі роботи з командним рядком, показаному на екрані 4. Під введеної мною команді ключ -h специфицирует TCP / IP-адреса сервера MySQL або ім'я головної машини (наприклад, mysqlsvr). За замовчуванням сервер визначено як localhost, так що, якщо команда Mysql подається з сервера MySQL, цей ключ можна опустити. Ключ -u вказує ім'я користувача MySQL, а ключ -p вказує на те, що пропонується утиліті Mysql підказати пароль. Про те, як користуватися анонімними сполуками, що не вимагають паролів, розказано в урізанні «Визначені облікові записи MySQL».

Про те, як користуватися анонімними сполуками, що не вимагають паролів, розказано в урізанні «Визначені облікові записи MySQL»

Використання MySQL в сценаріях

Для використання інструменту Mysql в командному варіанті (наприклад, в сценарії оболонки) застосовується ключ -e, за яким слід виконується оператор SQL і ключ -p. В останню чергу вказується пароль облікового запису. У наведеній нижче команді оператор SQL використовується з символом шаблону зірочка (*), який вказує на необхідність вибрати всі стовпці таблиці ComputerApps бази даних NetworkData. Отримані дані (показані на екрані 5) роздруковуються.
C: mysqlin> mysql -h mysqlsvr
-u networkdata_user
-p
-e «SELECT * FROM ComputerApps»
NetworkData

Щоб утиліта Mysql не перераховує імена стовпців і виводила дані на друк у вигляді таблиці, як показано на екрані 5, необхідно задіяти в сценаріях оболонки параметр -B і параметр -skip-column-names. При використанні цих параметрів Mysql представляє інформацію у вигляді полів, розділених знаками табуляції. Дані в цьому форматі можуть з легкістю аналізуватися сценаріями оболонки. Детальну інформацію про наявні параметри Mysql можна отримати, викликавши команду Mysql з параметром -help.

Сценарій управління модулями корекції

Припустимо, якийсь адміністратор управляє мережею з великим числом серверів, і на кожному з них потрібно своєчасно встановлювати все що з'являються модулі корекції. Він вирішує розгорнути спеціальний засіб управління модулями корекції на базі сервера MySQL, сценаріїв оболонки і засоби Qchain. Адміністратор створює таблицю ComputerApps і вносить в неї дані про операційні системи і додатках, які виконуються на всіх серверах. Потім для звернення до цієї таблиці він використовує сценарій оболонки, представлений в лістингу 1 .

Для установки відповідності між локальним ім'ям сервера і ім'ям сервера в таблиці ComputerApps, а також для отримання списку прикладних програм, встановлених на цьому сервері, сценарій виконує команду SQL SELECT, в якій міститься оператор WHERE, як показано в мітці B лістингу 1. Практично вся логіка сценарію міститься в циклі For, показаному в мітці C. Цей код аналізує список і викликає для кожного додатка відповідну підпрограму (наприклад, для Microsoft IIS викликається підпрограма: IIS). Підпрограма визначає, потрібно чи для цього додатка модуль корекції, і в разі необхідності встановлює відповідний модуль.

У даному сценарії представлена ​​базова реалізація засоби управління модулями корекції; в ній передбачено управління модулями тільки для Windows 2000 і для сервера IIS. Адміністратор може з легкістю адаптувати сценарій відповідно до особливостей свого сайту і розширити його так, щоб забезпечити установку модулів корекції - і навіть сценаріїв захисту - на інших програмних засобах. Щоб адаптувати сценарій під конкретний сайт, необхідно знайти код, показаний в мітці A; змінити значення змінної SVR (замість mysqlsvr ввести ім'я сервера MySQL), змінити значення змінної DB так, щоб вона вказувала на бази даних MySQL, для змінної USER задати значення username, в змінної PW вказати значення пароля користувача і замінити значення змінної PATCH_UNC, вказавши замість нього шлях до файлів модуля корекції. Налаштувавши сценарій для використання в мережі, можна буде виконувати його автоматично - за допомогою Scheduled Tasks - або вручну в періоди зупинок для профілактичного обслуговування.

Наведемо ще один приклад, який показує, які серйозні завдання може вирішувати навіть проста база даних NetworkData. Уявімо собі, що на системі, де тільки що була встановлена ​​Windows Server 2003, з якого здійснюється виклик розроблених всередині компанії сценаріїв, які застосовуються після установки сервера. За такими критеріями, як ім'я сервера і записи в бази даних NetworkData, ці сценарії визначають вимоги з боку додатків сервера, встановлюють і конфігурують внесені в список прикладні програми і потім виконують сценарії захисту (наприклад, для IIS). Автоматизацію цих завдань передбачає будь-який план відновлення після аварійного збою, і таке рішення стане справжнім подарунком для адміністраторів, яким доводиться що ні день розгортати нові сервери.

Універсальність і низькі витрати

Розгорнувши в своїй мережі сервер MySQL, адміністратор зможе знизити витрати на ліцензування, а також експлуатаційні витрати і при цьому забезпечити централізоване зберігання важливою для всієї компанії інформації. Можливо, за допомогою MySQL ви будете створювати інформаційну систему рівня підприємства, а може бути - формувати централізоване сховище сценаріїв. У будь-якому випадку ви напевно оціните незаперечні переваги цього потужного і економічного сервера баз даних.

Дастін Пурье ( [email protected] ) - мережевий адміністратор, автор нотаток в 32BitsOnline.com, а також автор книги «Integrate Linux Solutions into Your Windows Network» (Prima)

Зумовлені облікові записи MySQL

Сервер MySQL поставляється з чотирма заданими обліковими записами: root @ localhost, root @%, @% і @localhost. За допомогою записів root @ localhost і root @% користувачі з правами адміністратора створюють нових користувачів, бази даних і т. Д. Записи @% і @localhost застосовуються для організації з'єднань, які, відповідно до термінологією MySQL, називаються анонімними. За анонімним з'єднанням MySQL забезпечує доступ для користувачів, що не надають облікові дані. На етапі знайомства з MySQL згадані сполуки можуть стати в нагоді. Але вони пробивають пролом в системі безпеки, тому в виробничих мережах анонімні з'єднання обов'язково потрібно видаляти. Для видалення таких з'єднань у вікні програми MySQL Control Center (MySQLCC) слід виконати подвійне клацання на елементі User Administration, правою клавішею миші клацнути на облікових записах @% і @localhost, після чого клацнути на елементі Delete User.

Перебуваючи в цьому меню, можна заодно змінити пароль головного користувача (за умовчанням поле пароля залишається незаповненим). Для цього правою клавішею миші потрібно клацнути на облікових записах root @ local host і root @%, клацнути на елементі Edit User і оновити пароль.