MySQL | Технічна підтримка | Зенон Н.С.П.
- MySQL Що таке MySQL?
- Як почати працювати з MySQL?
- Створення баз даних MySQL
- Як отримати персональний MySQL-сервер?
- Чи можна отримати доступ до MySQL ні з хостингової машини?
- Доступ до сервера персонального MySQL по FTP і SSH
- Підтримка типів таблиць MyISAM і InnoDB
- Імпорт / експорт даних з MySQL
- Як отримати доступ до бази даних з cgi-скриптів?
- Як отримати доступ до бази даних з php-скриптів?
- Як отримати доступ до бази даних з mod_perl модулів?
- Деякі корисні посилання по MySQL
- MySQL
- Як почати працювати з MySQL?
- Створення баз даних MySQL
- Як отримати персональний MySQL-сервер?
- Чи можна отримати доступ до MySQL ні з хостингової машини?
- Доступ до сервера персонального MySQL по FTP і SSH
- Підтримка типів таблиць MyISAM і InnoDB
- Імпорт / експорт даних з MySQL
- Як отримати доступ до бази даних з cgi-скриптів?
- Як отримати доступ до бази даних з php-скриптів?
- Як отримати доступ до бази даних з mod_perl модулів?
- Деякі корисні посилання по 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-сервер?