MySQL | Технічна підтримка | Зенон Н.С.П.

  1. MySQL Що таке MySQL?
  2. Як почати працювати з MySQL?
  3. Створення баз даних MySQL
  4. Як отримати персональний MySQL-сервер?
  5. Чи можна отримати доступ до MySQL ні з хостингової машини?
  6. Доступ до сервера персонального MySQL по FTP і SSH
  7. Підтримка типів таблиць MyISAM і InnoDB
  8. Імпорт / експорт даних з MySQL
  9. Як отримати доступ до бази даних з cgi-скриптів?
  10. Як отримати доступ до бази даних з php-скриптів?
  11. Як отримати доступ до бази даних з mod_perl модулів?
  12. Деякі корисні посилання по MySQL
  13. MySQL
  14. Як почати працювати з MySQL?
  15. Створення баз даних MySQL
  16. Як отримати персональний MySQL-сервер?
  17. Чи можна отримати доступ до MySQL ні з хостингової машини?
  18. Доступ до сервера персонального MySQL по FTP і SSH
  19. Підтримка типів таблиць MyISAM і InnoDB
  20. Імпорт / експорт даних з MySQL
  21. Як отримати доступ до бази даних з cgi-скриптів?
  22. Як отримати доступ до бази даних з php-скриптів?
  23. Як отримати доступ до бази даних з mod_perl модулів?
  24. Деякі корисні посилання по MySQL

MySQL

Що таке MySQL?

MySQL - це розрахований на багато користувачів, багато-сервер бази даних SQL. SQL (Structured Query Language) - найбільш популярний і стандартизований мову для роботи з базами даних. Наприклад, Ви можете використовувати SQL для зберігання і швидкого доступу до інформації про клієнта Вашого сайту. MySQL також швидкий і досить гнучкий при використанні його для зберігання файлів і зображень. Головні переваги MySQL - швидкість, стійкість і легкість у використанні. Саме тому MySQL використовується в більшій кількості популярних веб-проектів.

Як почати працювати з MySQL?

На нашому хостингу доступні два варіанти використання сервера MySQL - загальний і персональний. Загальний існує на всіх тарифних планах, крім "Бітрікс", персональний тільки на "Зенон-420", "Зенон-630" і "Зенон-840" і "Бітрікс". Бази загального MySQL розташовані на загальному сервері, до них надається користувальницький доступ і тільки з сервера хостингу. Для персонального MySQL надається доступ root, є можливість підключення з будь-якого місця, а також використання власного файлу налаштувань my.cnf (на вимогу). Кількість баз для персонального MySQL не обмежена.

Дані для підключення до MySQL містяться в інструкції, яка приходити в електронному повідомленні на вказаний при укладенні договору електронну адресу (e-mail), відразу після реєстрації тарифного плану. З інструкціями до тарифних планів, так само можна ознайомитись на нашому сайті .

Так само хост, порт, логін і ім'я бази можна подивитися в панелі управління ( інструкція ). Там же можна перевірити чи поміняти пароль логіна в разі його втрати.

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

Існує кілька способів доступу до бази даних MySQL. Найпростіший спосіб - використовувати web-інтерфейс phpMyAdmin .

Також можна управляти базою даних з командного рядка, використовуючи програму-клієнт. Дана програма запускається з Unix-shell наступними командами:

для бази на загальному сервері

mysql --host = baze.zenon.net --port = 64000 --user = <Ваш логін> --password = <Ваш пароль> <Ім'я бази>

або

mysql -hbaze.zenon.net -P64000 -u <Ваш логін> -p <Ім'я бази>

для бази на персональному сервері

mysql --host = mysql.baze.domain_name --port = порт --user = <Ваш логін> --password = <Ваш пароль> <Ім'я бази>

або

mysql -hmysql.baze.domain_name -Pпорт -u <Ваш логін> -p <Ваш пароль> <Ім'я бази>

У цих прикладах ми використовували такі ключі програми-клієнта mysql:

  • -host (-h) - адреса сервера;
  • -port (-P) - порт для підключення;
  • -user (-u) - ім'я користувача;
  • -password (-p) - пароль для підключення; якщо залишити його порожнім, пароль буде запитано інтерактивно; останнім параметром вказується ім'я бази даних, з якою ми будемо працювати.

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

На хостингу можна створити кілька баз даних. При використанні загального сервера MySQL, база створюється в Панелі управління ( інструкція ). Ім'я користувача і бази формуються шляхом додавання введеного Вами імені до технічного логіну: техлогін_імябази, наприклад, vhXXXXX_dbase.

При використанні персонального сервера MySQL базу можна створити, наприклад, в web-інтерфейсі phpMyAdmin .

Зверніть увагу, що при створенні додаткового web-сервера база даних для нього автоматично створена не буде.

Як отримати персональний MySQL-сервер?

На тарифних планах Зенон-420, Зенон-630 і Зенон-840 Ви маєте можливість безкоштовно завести додаткову послугу - персональний MySQL-сервер. На тарифному плані "Бітрікс" персональний MySQL заводиться за замовчуванням. З його допомогою Ви зможете вирішувати більш складні завдання і отримаєте додаткові можливості в порівнянні із загальним MySQL. Основні відмінності персонального MySQL-сервера наступні:

Можливість адміністрування і настройки сервера, в т.ч. створення кількох баз даних і закладу користувачів. При закладі персонального сервера Ви отримуєте на ньому логін root і, відповідно, всі права на його адміністрування та управління, аж до можливості ручної зупинки і перезапуску сервера. Можливість доступу до бази даних ззовні, тобто ні з хостингової машини.

Завести персональний MySQL-сервер Ви можете самостійно за допомогою панелі управління ( інструкція ).

Для персонального MySQL у Вас будуть інші настройки доступу до бази, відмінні від загального MySQL:

Хост, де працює MySQL-сервер - mysql.baze.domain_name, де domain_name ім'я Вашого основного домену.

Наприклад, mysql.baze.aaa.ru або mysql.baze.bbb.com. Якщо зону DNS для домену підтримуєте Ви самі, потрібно зробити в ній такий запис:

mysql.baze IN CNAME mysql.baze. domain_name .postman.ru.

Порт, на якому працює Ваш персональний сервер - не стандартний для нашого хостингу порт 64000, зверніть увагу на це. Номер порту Ви побачите в реєстраційній картці після закладі послуги. У будь-який момент його також можна подивитися в Панелі управління.

Логін. За замовчуванням в персональному MySQL заводиться один логін - root.

Пароль для бази в персональному MySQL Ви задаєте при створенні користувача в PhpMyAdmin, там же його можна змінити, авторизувавшись з логіном root.

Зверніть увагу: ми не рекомендуємо заводити персональний MySQL-сервер в тому випадку, якщо Ви ніколи раніше не займалися самостійним адмініструванням MySQL або у Вас в штаті немає відповідного фахівця. У будь-якому випадку, будь ласка, заздалегідь проконсультуйтеся на цю тему з відділом технічної підтримки. Напишіть нам на адресу [email protected] , Опишіть свою конфігурацію і тонкощі, розкажіть, чому Ви хочете отримати окремий сервер. Можливо, Ваші проблеми вирішуються без заведення цієї послуги.

Чи можна отримати доступ до MySQL ні з хостингової машини?

Так можна. Для цього потрібен персональний MySQL-сервер. Після реєстрації цієї послуги зайдіть в MySQL під користувачем root або мають аналогічні права і замініть поточне значення поля Host для потрібних логінів в таблиці mysql.user на той IP-адресу, з якого Ви будете звертатися до MySQL.

Якщо ж Ви хочете обмежити доступ до сервера MySQL тільки з хостингової машини, ми рекомендуємо Вам задати в якості дозволеного хоста підмережі 195.2.72.0/24 і 62.113.86.0/24, що в нотації MySQL виражається як «195.2.72.%» (І , відповідно, «62.113.86.%»). Щоб задати дві підмережі, необхідно продублювати рядок в таблиці user з потрібним користувачем. Відрізнятися в цих рядках буде лише поле Host: в одному рядку - 195.2.72.%, В іншій - 62.113.86.%.

У даних мережах розміщуються тільки сервери хостингу, тому, з точки зору безпеки, дані маски практично відповідає завданням імені хоста з розміщеними на ньому віртуальними серверами. Зверніть особливу увагу на те, що потрібно вказувати повністю дві мережі, а не той окремий IP, на якому зараз знаходиться Ваш сервер. Справа в тому, що через застосовуваної на хостингу системи балансування навантаження IP-адреса тієї машини, на якій розташований Ваш сервер, може змінюватися. Але він завжди буде в блоках 195.2.72.0/24 і 62.113.86.0/24.

Приклад команди:

mysql> update mysql.user set Host = '1.2.3.4' where User = 'user_name';

де 1.2.3.4 - IP-адреса, з якого Ви будете звертатися до MySQL, а 'user_name' - логін користувача в MySQL.

Звертатися потрібно за адресою mysql.baze.domain_name, де domain_name - ім'я Вашого домена. Порт - той, що Вам повідомляли при закладі персонального MySQL.

Якщо Ви хочете пускати в MySQL звідусіль, замість IP-адреси використовуйте символ '%' (відсоток).

Якщо Ви використовували для додавання нового користувача не спеціальну команду GRANT, а вручну вставили в таблиці mysql.user і mysql.db нові записи, MySQL не пускатиме таких користувачів, повертаючи повідомлення виду «ERROR тисячі сорок чотири: Access denied for user ...». Для того, щоб новий користувач зміг скористатися виданими йому правами, необхідно виконати команду FLUSH PRIVILEGES або запустити з unix-shell програму mysqladmin з параметром flush-privileges, щоб повідомити MySQL-сервер про необхідність перечитати таблицю прав доступу. Більш детально про цю особливість MySQL написано в розділі документації "Коли зміни в привілеї вступають в силу"

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

Доступ до сервера персонального MySQL по FTP і SSH

Якщо Ви використовуєте персональний MySQL-сервер, у Вас є можливість звертатися на ту фізичну машину, на якій запущений MySQL-сервер, за протоколом FTP.

Ім'я сервера, до якого потрібно звертатися по FTP або SSH: mysql.baze.domain_name, де domain_name - ім'я Вашого основного домену. Логін - технічний логін виду vhXXXXX, де XXXXX - цифри.

Можливість працювати з сервером MySQL по FTP або SSH може бути корисна, наприклад, в тому випадку, якщо по Вашому запиту на [email protected] для Вашого сервера було включено ведення протоколу «повільних запитів». Файл протоколу буде перебувати у Вашій домашній директорії на тій машині, на якій працює MySQL.

Підтримка типів таблиць MyISAM і InnoDB

На Персональному MySQL-сервері і загальному MySQL-сервері версії 5.x є можливість використовувати як MyISAM, так і InnoDB.

Щоб перевести тип таблиці з MyISAM в InnoBD необхідно виконати наступний запит в MySQL:

ALTER TABLE table_name ENGINE = innodb;

Імпорт / експорт даних з MySQL

Для створення резервної копії бази MySQL і перенесення її на інший сервер можна використовувати web-інтерфейс phpMyAdmin або утиліту mysqldumpXX (де XX - версія Вашої бази даних, наприклад, mysqldump55). Інструкція по роботі з phpMyAdmin доступна по засланні .

Утиліта mysqldump дозволяє отримати SQL-скрипт (дамп бази), за допомогою якого на іншому сервері можна повністю відновити базу даних (таблиці і дані в них).

Для того, щоб створити дамп бази, можна використовувати таку команду:

mysqldumpXX -u <логін1> -p -h <хост1> -P <порт1> <база1>> database.sql

Після виконання цієї команди у файлі database.sql і буде дамп бази даних. Цей файл Ви можете копіювати на інші сервери.

Відновити базу з дампа можна ось так:

mysqlXX -u <логін2> -p -h <хост2> -P <порт2> <база2> <database.sql

Зверніть увагу на таку особливість: якщо Ви подивіться вміст файлу дампа, то побачите, що він вдає із себе звичайний текстовий файл, в якому міститься послідовність команд для заповнення бази - створення таблиць і запис в них даних. В процесі відновлення бази ці команди виконуються, таким чином переносячи дані в базу. Якщо в дампі database.sql і в базі "база2" міститься таблиця з однаковим ім'ям, то відновлення бази перерветься, і Ви отримаєте повідомлення про помилку, оскільки не можна буде створити таблицю з уже існуючим ім'ям. З іншого боку, при успішному завершенні відновлення бази вже існуючі в ній таблиці не будуть порушені, в базу просто додадуться нові таблиці з дампа. Тому, якщо Ви хочете повністю замінити вміст бази без збереження старих даних, то попередньо потрібно видалити всі таблиці з бази командою DROP TABLE.

У разі, якщо база даних має великий обсяг, то дамп можна відразу заархівувати, а при відновленні бази передати команді mysql дані з архіву, наприклад, таким чином:

mysqldumpXX -q -u <логін1> -p -h <хост1> -P <порт1> <база1> | gzip -c> dump.gz gunzip -cd dump.gz | mysqlXX -u <логін2> -p -h <хост2> -P <порт2> <база2>

Зверніть увагу на ключ -q (-quick). Його обов'язково потрібно використовувати.

При дуже великих обсягах даних розмір файлу дампа може перевищити 2 Гб - це максимально допустимий розмір файлу на хостингу. В цьому випадку при перенесенні бази можна взагалі не створювати дамп, а виконати поспіль команди mysqldump і mysql:

mysqldumpXX -q -u <пользователь1> -P <порт1> -h <хост1> -p <Пароль1> <база1> | mysqlXX -u <пользователь2> -P <порт2> -h <хост2> -p <Пароль2> <база2>

Як отримати доступ до бази даних з cgi-скриптів?

Для написання cgi-скриптів дуже часто використовується мова perl, тому наведемо приклад звернення до бази даних, використовуючи цю мову. Для доступу до бази даних необхідно скористатися perl-модулем DBI. За допомогою даного модуля можна працювати з багатьма популярними базами даних. Нижче наводиться простий perl-скрипт, який виводить список таблиць в базі даних.

#! / Usr / local / bin / perl # # Використовувані модулі # use DBI; # Ім'я хоста, на якому працює MySQL $ hostname = "baze.domain_name"; # Номер порту $ port = "64000"; # Ім'я користувача $ user = "login"; # Пароль доступу до бази даних $ password = "password"; # Ім'я бази (збігається з ім'ям користувача) $ database = $ user; # Висновок http-заголовка print "Content-type: text / html \ n \ n"; # Підключення до бази $ dbh = DBI-> connect ( "DBI: mysql: $ database: $ hostname: $ port", $ user, $ password); # Підготовка запиту $ sth = $ dbh-> prepare ( "SHOW TABLES"); # Виконання запиту $ sth-> execute; while ($ ref = $ sth-> fetchrow_arrayref) {print "$$ ref [0] \ n" # Друкуємо результат} # відключати від бази $ rc = $ sth-> finish; $ Rc = $ dbh-> disconnect;

Додаткову інформацію про модуль DBI можна отримати з документації, набравши в Unix-shell наступну команду:

perldoc DBI

Як отримати доступ до бази даних з php-скриптів?

PHP - це зручний мову програмування, призначений для вбудовування в web-сторінки. На Вашому сервері PHP зібраний з підтримкою з'єднань з MySQL. Нижче наводиться фрагмент php-документа, який виконує таку ж функцію, як і описаний вище perl-скрипт.

<? Php $ conn = mysql_connect ( "baze.domain_name: 64000", "login", "password"); $ Result = mysql ( "login", "SHOW TABLES", $ conn); while (list ($ table) = mysql_fetch_row ($ result)) {print ( "$ table <br> \ n"); }?>

Додаткову інформацію щодо використання функцій для роботи з MySQL з php можна отримати на сайті розробників PHP .

Як отримати доступ до бази даних з mod_perl модулів?

Apache / Perl - проект, що включає всю міць мови програмування Perl і http-сервера Apache. Доступ до MySQL здійснюється точно так же, як і з perl-скриптів. Для оптимізації роботи mod_perl-модулів рекомендується використовувати модуль Apache :: DBI. Даний модуль підтримує з'єднання c базою даних на весь час роботи процесу, що значно прискорює роботу з базою даних. При використанні даного модуля немає необхідності змінювати Ваші скрипти, тому що модуль працює абсолютно прозоро. Додаткову інформацію про модуль DBI можна отримати з документації, набравши в Unix-shell наступну команду:

perldoc Apache :: DBI

Деякі корисні посилання по MySQL


MySQL

Що таке MySQL?

MySQL - це розрахований на багато користувачів, багато-сервер бази даних SQL. SQL (Structured Query Language) - найбільш популярний і стандартизований мову для роботи з базами даних. Наприклад, Ви можете використовувати SQL для зберігання і швидкого доступу до інформації про клієнта Вашого сайту. MySQL також швидкий і досить гнучкий при використанні його для зберігання файлів і зображень. Головні переваги MySQL - швидкість, стійкість і легкість у використанні. Саме тому MySQL використовується в більшій кількості популярних веб-проектів.

Як почати працювати з MySQL?

На нашому хостингу доступні два варіанти використання сервера MySQL - загальний і персональний. Загальний існує на всіх тарифних планах, крім "Бітрікс", персональний тільки на "Зенон-420", "Зенон-630" і "Зенон-840" і "Бітрікс". Бази загального MySQL розташовані на загальному сервері, до них надається користувальницький доступ і тільки з сервера хостингу. Для персонального MySQL надається доступ root, є можливість підключення з будь-якого місця, а також використання власного файлу налаштувань my.cnf (на вимогу). Кількість баз для персонального MySQL не обмежена.

Дані для підключення до MySQL містяться в інструкції, яка приходити в електронному повідомленні на вказаний при укладенні договору електронну адресу (e-mail), відразу після реєстрації тарифного плану. З інструкціями до тарифних планів, так само можна ознайомитись на нашому сайті .

Так само хост, порт, логін і ім'я бази можна подивитися в панелі управління ( інструкція ). Там же можна перевірити чи поміняти пароль логіна в разі його втрати.

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

Існує кілька способів доступу до бази даних MySQL. Найпростіший спосіб - використовувати web-інтерфейс phpMyAdmin .

Також можна управляти базою даних з командного рядка, використовуючи програму-клієнт. Дана програма запускається з Unix-shell наступними командами:

для бази на загальному сервері

mysql --host = baze.zenon.net --port = 64000 --user = <Ваш логін> --password = <Ваш пароль> <Ім'я бази>

або

mysql -hbaze.zenon.net -P64000 -u <Ваш логін> -p <Ім'я бази>

для бази на персональному сервері

mysql --host = mysql.baze.domain_name --port = порт --user = <Ваш логін> --password = <Ваш пароль> <Ім'я бази>

або

mysql -hmysql.baze.domain_name -Pпорт -u <Ваш логін> -p <Ваш пароль> <Ім'я бази>

У цих прикладах ми використовували такі ключі програми-клієнта mysql:

  • -host (-h) - адреса сервера;
  • -port (-P) - порт для підключення;
  • -user (-u) - ім'я користувача;
  • -password (-p) - пароль для підключення; якщо залишити його порожнім, пароль буде запитано інтерактивно; останнім параметром вказується ім'я бази даних, з якою ми будемо працювати.

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

На хостингу можна створити кілька баз даних. При використанні загального сервера MySQL, база створюється в Панелі управління ( інструкція ). Ім'я користувача і бази формуються шляхом додавання введеного Вами імені до технічного логіну: техлогін_імябази, наприклад, vhXXXXX_dbase.

При використанні персонального сервера MySQL базу можна створити, наприклад, в web-інтерфейсі phpMyAdmin .

Зверніть увагу, що при створенні додаткового web-сервера база даних для нього автоматично створена не буде.

Як отримати персональний MySQL-сервер?

На тарифних планах Зенон-420, Зенон-630 і Зенон-840 Ви маєте можливість безкоштовно завести додаткову послугу - персональний MySQL-сервер. На тарифному плані "Бітрікс" персональний MySQL заводиться за замовчуванням. З його допомогою Ви зможете вирішувати більш складні завдання і отримаєте додаткові можливості в порівнянні із загальним MySQL. Основні відмінності персонального MySQL-сервера наступні:

Можливість адміністрування і настройки сервера, в т.ч. створення кількох баз даних і закладу користувачів. При закладі персонального сервера Ви отримуєте на ньому логін root і, відповідно, всі права на його адміністрування та управління, аж до можливості ручної зупинки і перезапуску сервера. Можливість доступу до бази даних ззовні, тобто ні з хостингової машини.

Завести персональний MySQL-сервер Ви можете самостійно за допомогою панелі управління ( інструкція ).

Для персонального MySQL у Вас будуть інші настройки доступу до бази, відмінні від загального MySQL:

Хост, де працює MySQL-сервер - mysql.baze.domain_name, де domain_name ім'я Вашого основного домену.

Наприклад, mysql.baze.aaa.ru або mysql.baze.bbb.com. Якщо зону DNS для домену підтримуєте Ви самі, потрібно зробити в ній такий запис:

mysql.baze IN CNAME mysql.baze. domain_name .postman.ru.

Порт, на якому працює Ваш персональний сервер - не стандартний для нашого хостингу порт 64000, зверніть увагу на це. Номер порту Ви побачите в реєстраційній картці після закладі послуги. У будь-який момент його також можна подивитися в Панелі управління.

Логін. За замовчуванням в персональному MySQL заводиться один логін - root.

Пароль для бази в персональному MySQL Ви задаєте при створенні користувача в PhpMyAdmin, там же його можна змінити, авторизувавшись з логіном root.

Зверніть увагу: ми не рекомендуємо заводити персональний MySQL-сервер в тому випадку, якщо Ви ніколи раніше не займалися самостійним адмініструванням MySQL або у Вас в штаті немає відповідного фахівця. У будь-якому випадку, будь ласка, заздалегідь проконсультуйтеся на цю тему з відділом технічної підтримки. Напишіть нам на адресу [email protected] , Опишіть свою конфігурацію і тонкощі, розкажіть, чому Ви хочете отримати окремий сервер. Можливо, Ваші проблеми вирішуються без заведення цієї послуги.

Чи можна отримати доступ до MySQL ні з хостингової машини?

Так можна. Для цього потрібен персональний MySQL-сервер. Після реєстрації цієї послуги зайдіть в MySQL під користувачем root або мають аналогічні права і замініть поточне значення поля Host для потрібних логінів в таблиці mysql.user на той IP-адресу, з якого Ви будете звертатися до MySQL.

Якщо ж Ви хочете обмежити доступ до сервера MySQL тільки з хостингової машини, ми рекомендуємо Вам задати в якості дозволеного хоста підмережі 195.2.72.0/24 і 62.113.86.0/24, що в нотації MySQL виражається як «195.2.72.%» (І , відповідно, «62.113.86.%»). Щоб задати дві підмережі, необхідно продублювати рядок в таблиці user з потрібним користувачем. Відрізнятися в цих рядках буде лише поле Host: в одному рядку - 195.2.72.%, В іншій - 62.113.86.%.

У даних мережах розміщуються тільки сервери хостингу, тому, з точки зору безпеки, дані маски практично відповідає завданням імені хоста з розміщеними на ньому віртуальними серверами. Зверніть особливу увагу на те, що потрібно вказувати повністю дві мережі, а не той окремий IP, на якому зараз знаходиться Ваш сервер. Справа в тому, що через застосовуваної на хостингу системи балансування навантаження IP-адреса тієї машини, на якій розташований Ваш сервер, може змінюватися. Але він завжди буде в блоках 195.2.72.0/24 і 62.113.86.0/24.

Приклад команди:

mysql> update mysql.user set Host = '1.2.3.4' where User = 'user_name';

де 1.2.3.4 - IP-адреса, з якого Ви будете звертатися до MySQL, а 'user_name' - логін користувача в MySQL.

Звертатися потрібно за адресою mysql.baze.domain_name, де domain_name - ім'я Вашого домена. Порт - той, що Вам повідомляли при закладі персонального MySQL.

Якщо Ви хочете пускати в MySQL звідусіль, замість IP-адреси використовуйте символ '%' (відсоток).

Якщо Ви використовували для додавання нового користувача не спеціальну команду GRANT, а вручну вставили в таблиці mysql.user і mysql.db нові записи, MySQL не пускатиме таких користувачів, повертаючи повідомлення виду «ERROR +1044: Access denied for user ...». Для того, щоб новий користувач зміг скористатися виданими йому правами, необхідно виконати команду FLUSH PRIVILEGES або запустити з unix-shell програму mysqladmin з параметром flush-privileges, щоб повідомити MySQL-сервер про необхідність перечитати таблицю прав доступу. Більш детально про цю особливість MySQL написано в розділі документації "Коли зміни в привілеї вступають в силу"

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

Доступ до сервера персонального MySQL по FTP і SSH

Якщо Ви використовуєте персональний MySQL-сервер, у Вас є можливість звертатися на ту фізичну машину, на якій запущений MySQL-сервер, за протоколом FTP.

Ім'я сервера, до якого потрібно звертатися по FTP або SSH: mysql.baze.domain_name, де domain_name - ім'я Вашого основного домену. Логін - технічний логін виду vhXXXXX, де XXXXX - цифри.

Можливість працювати з сервером MySQL по FTP або SSH може бути корисна, наприклад, в тому випадку, якщо по Вашому запиту на [email protected] для Вашого сервера було включено ведення протоколу «повільних запитів». Файл протоколу буде перебувати у Вашій домашній директорії на тій машині, на якій працює MySQL.

Підтримка типів таблиць MyISAM і InnoDB

На Персональному MySQL-сервері і загальному MySQL-сервері версії 5.x є можливість використовувати як MyISAM, так і InnoDB.

Щоб перевести тип таблиці з MyISAM в InnoBD необхідно виконати наступний запит в MySQL:

ALTER TABLE table_name ENGINE = innodb;

Імпорт / експорт даних з MySQL

Для створення резервної копії бази MySQL і перенесення її на інший сервер можна використовувати web-інтерфейс phpMyAdmin або утиліту mysqldumpXX (де XX - версія Вашої бази даних, наприклад, mysqldump55). Інструкція по роботі з phpMyAdmin доступна по засланні .

Утиліта mysqldump дозволяє отримати SQL-скрипт (дамп бази), за допомогою якого на іншому сервері можна повністю відновити базу даних (таблиці і дані в них).

Для того, щоб створити дамп бази, можна використовувати таку команду:

mysqldumpXX -u <логін1> -p -h <хост1> -P <порт1> <база1>> database.sql

Після виконання цієї команди у файлі database.sql і буде дамп бази даних. Цей файл Ви можете копіювати на інші сервери.

Відновити базу з дампа можна ось так:

mysqlXX -u <логін2> -p -h <хост2> -P <порт2> <база2> <database.sql

Зверніть увагу на таку особливість: якщо Ви подивіться вміст файлу дампа, то побачите, що він вдає із себе звичайний текстовий файл, в якому міститься послідовність команд для заповнення бази - створення таблиць і запис в них даних. В процесі відновлення бази ці команди виконуються, таким чином переносячи дані в базу. Якщо в дампі database.sql і в базі "база2" міститься таблиця з однаковим ім'ям, то відновлення бази перерветься, і Ви отримаєте повідомлення про помилку, оскільки не можна буде створити таблицю з уже існуючим ім'ям. З іншого боку, при успішному завершенні відновлення бази вже існуючі в ній таблиці не будуть порушені, в базу просто додадуться нові таблиці з дампа. Тому, якщо Ви хочете повністю замінити вміст бази без збереження старих даних, то попередньо потрібно видалити всі таблиці з бази командою DROP TABLE.

У разі, якщо база даних має великий обсяг, то дамп можна відразу заархівувати, а при відновленні бази передати команді mysql дані з архіву, наприклад, таким чином:

mysqldumpXX -q -u <логін1> -p -h <хост1> -P <порт1> <база1> | gzip -c> dump.gz gunzip -cd dump.gz | mysqlXX -u <логін2> -p -h <хост2> -P <порт2> <база2>

Зверніть увагу на ключ -q (-quick). Його обов'язково потрібно використовувати.

При дуже великих обсягах даних розмір файлу дампа може перевищити 2 Гб - це максимально допустимий розмір файлу на хостингу. В цьому випадку при перенесенні бази можна взагалі не створювати дамп, а виконати поспіль команди mysqldump і mysql:

mysqldumpXX -q -u <пользователь1> -P <порт1> -h <хост1> -p <Пароль1> <база1> | mysqlXX -u <пользователь2> -P <порт2> -h <хост2> -p <Пароль2> <база2>

Як отримати доступ до бази даних з cgi-скриптів?

Для написання cgi-скриптів дуже часто використовується мова perl, тому наведемо приклад звернення до бази даних, використовуючи цю мову. Для доступу до бази даних необхідно скористатися perl-модулем DBI. За допомогою даного модуля можна працювати з багатьма популярними базами даних. Нижче наводиться простий perl-скрипт, який виводить список таблиць в базі даних.

#! / Usr / local / bin / perl # # Використовувані модулі # use DBI; # Ім'я хоста, на якому працює MySQL $ hostname = "baze.domain_name"; # Номер порту $ port = "64000"; # Ім'я користувача $ user = "login"; # Пароль доступу до бази даних $ password = "password"; # Ім'я бази (збігається з ім'ям користувача) $ database = $ user; # Висновок http-заголовка print "Content-type: text / html \ n \ n"; # Підключення до бази $ dbh = DBI-> connect ( "DBI: mysql: $ database: $ hostname: $ port", $ user, $ password); # Підготовка запиту $ sth = $ dbh-> prepare ( "SHOW TABLES"); # Виконання запиту $ sth-> execute; while ($ ref = $ sth-> fetchrow_arrayref) {print "$$ ref [0] \ n" # Друкуємо результат} # відключати від бази $ rc = $ sth-> finish; $ Rc = $ dbh-> disconnect;

Додаткову інформацію про модуль DBI можна отримати з документації, набравши в Unix-shell наступну команду:

perldoc DBI

Як отримати доступ до бази даних з php-скриптів?

PHP - це зручний мову програмування, призначений для вбудовування в web-сторінки. На Вашому сервері PHP зібраний з підтримкою з'єднань з MySQL. Нижче наводиться фрагмент php-документа, який виконує таку ж функцію, як і описаний вище perl-скрипт.

<? Php $ conn = mysql_connect ( "baze.domain_name: 64000", "login", "password"); $ Result = mysql ( "login", "SHOW TABLES", $ conn); while (list ($ table) = mysql_fetch_row ($ result)) {print ( "$ table <br> \ n"); }?>

Додаткову інформацію щодо використання функцій для роботи з MySQL з php можна отримати на сайті розробників PHP .

Як отримати доступ до бази даних з mod_perl модулів?

Apache / Perl - проект, що включає всю міць мови програмування Perl і http-сервера Apache. Доступ до MySQL здійснюється точно так же, як і з perl-скриптів. Для оптимізації роботи mod_perl-модулів рекомендується використовувати модуль Apache :: DBI. Даний модуль підтримує з'єднання c базою даних на весь час роботи процесу, що значно прискорює роботу з базою даних. При використанні даного модуля немає необхідності змінювати Ваші скрипти, тому що модуль працює абсолютно прозоро. Додаткову інформацію про модуль DBI можна отримати з документації, набравши в Unix-shell наступну команду:

perldoc Apache :: DBI

Деякі корисні посилання по MySQL


MySQL Що таке MySQL?
Як почати працювати з MySQL?
Чи можна отримати доступ до MySQL ні з хостингової машини?
Як отримати доступ до бази даних з php-скриптів?
Як отримати доступ до бази даних з mod_perl модулів?
Чи можна отримати доступ до MySQL ні з хостингової машини?
Як отримати доступ до бази даних з php-скриптів?
Як отримати доступ до бази даних з mod_perl модулів?
Як почати працювати з MySQL?
Як отримати персональний MySQL-сервер?
IRC (Internet Relay Chat)