Dbuser root

Dbuser root Техника

Если у Вас встала задача развернуть Web-сервер на операционной системе Linux CentOS 7.1 с использованием Apache, PHP и MySQL (LAMP), то данный материал в этом Вам поможет, так как сейчас мы пошагово рассмотрим весь процесс установки и настройки веб сервера Apache, языка программирования PHP и СУБД MySQL с подробными комментариями, так как этот сайт для начинающих.

Операционная система Linux и в частности дистрибутив CentOS выбран не случайно, так как он является одним из самых популярных дистрибутивов, которые активно используется в качестве платформы для web-серверов, кстати, говоря о том, что это за дистрибутив и как его установить, мы с Вами подробно разговаривали вот здесь.

И так приступаем и начнем мы с небольшой настройки самой операционной системы, а конкретно откроем необходимые порты на файрволе, для того чтобы иметь возможность обращаться к web-серверу по этим портам.

Примечание! Еще раз обращаю Ваше внимание на то, что все действия мы будем выполнять в CentOS версии 7.1, так как в 6 версии и ниже многое делается по-другому. Также в качестве СУБД в CentOS 7.1 используется полностью бесплатная MariaDB, это ответвление MySQL.

Как уже было сказано выше, для того чтобы наш web сервер был доступен по определенным портам, т.е. обычно это 80 для http и 443 для https, необходимо открыть соответствующие порты на файрволе, делается это достаточно просто, поэтому отключать файрвол, как рекомендуют некоторые web мастера, нет необходимости и я даже больше скажу — это крайне не рекомендуется.

Примечание! Все мы будем делать в терминале (консоли) Linux, поэтому неважно установлена ли графическая оболочка у Вас или нет.

Выполняем от имени суперпользователя следующие команды, 1 для открытия 80 порта, 2 для 443 и 3 для перезапуска файрвола:

 
   firewall-cmd --permanent --zone=public --add-service=http
   firewall-cmd --permanent --zone=public --add-service=https
   firewall-cmd --reload

Скриншот 1

Содержание
  1. Установка и настройка Web-сервера Apache на CentOS 7.1
  2. Убираем страницу заглушку
  3. Настраиваем каталоги http сервера
  4. Настраиваем конфиг для тестового сайта
  5. Настраиваем SELinux в CentOS 7.1 для WEB сервера
  6. Устанавливаем PHP на CentOS 7.1
  7. Устанавливаем MySQL/MariaDB на CentOS 7.1
  8. Проверяем работу MariaDB
  9. PHP Создать скрипт базы данных
  10. Создать базу данных с помощью PHP Script
  11. MySQL – Введение
  12. База данных MySQL
  13. Прежде чем вы начнете
  14. MySQL – Установка
  15. Установка MySQL в Linux / UNIX
  16. Установка MySQL в Windows
  17. Проверка установки MySQL
  18. Выполните простые команды SQL, используя MySQL Client
  19. Шаги после установки
  20. Запуск MySQL во время загрузки
  21. Запуск и завершение работы MySQL Server
  22. Настройка учетной записи пользователя MySQL
  23. Конфигурация файла /etc/my.cnf
  24. Административная команда MySQL
  25. MySQL – синтаксис PHP
  26. MySQL Connection Используя MySQL Binary
  27. MySQL Connection Используя PHP Script
  28. Создать базу данных с помощью PHP Script
  29. Удалить базу данных с помощью PHP Script
  30. Выбор базы данных MySQL
  31. Выбор базы данных MySQL из командной строки
  32. Выбор базы данных MySQL с использованием PHP-скрипта
  33. MySQL – типы данных
  34. Числовые типы данных
  35. Типы даты и времени
  36. Создать таблицы MySQL
  37. Создание таблиц из командной строки
  38. Создание таблиц с использованием PHP Script
  39. Отбросьте таблицы MySQL
  40. Удаление таблиц из командной строки
  41. Удаление таблиц с использованием PHP-скрипта
  42. MySQL – Вставить запрос
  43. Вставка данных из командной строки
  44. Вставка данных с использованием PHP-скрипта
  45. MySQL – выберите запрос
  46. Извлечение данных из командной строки
  47. Извлечение данных с использованием PHP-скрипта

Установка и настройка Web-сервера Apache на CentOS 7.1

Теперь устанавливаем HTTP сервер Apache, это также делается очень просто, выполняем еще 3 команды, первая — это непосредственно сама установка http сервера с модулем ssl, вторая — это его запуск, и третья — это включение в автозагрузку.

Примечание! Перед запуском команд проверьте, подключен ли у Вас Интернет. Эти и все остальные команды выполняются от имени суперпользователя (root).

 
   yum -y install httpd mod_ssl
   systemctl start httpd.service
   systemctl enable httpd.service 

Скриншот 2

После того как Вы установили, запустили и поместили в автозагрузку Apache, необходимо проверить работу этого http сервера, для этого просто вводим в браузере ip адрес сервера или если у Вас CentOS со средой рабочего стола, то достаточно указать 127.0.0.1, т.е. localhost непосредственно на самом сервере в браузере. В ответ Вы должны получить что-то вроде этого

Скриншот 3

Это заставка означает, что http сервер установлен и по умолчанию отображается страница приветствия.

Убираем страницу заглушку

Теперь нам необходимо настроить наш web сервер Apache, и первое что нужно сделать, это убрать страницу заглушку, для этого редактируем файл welcome.conf (напомню, что все делаем от имени root), например, редактором nano, в этом файле всего лишь нужно закомментировать все не закомментированные строки, знак комментария # (решетка).

 
   nano /etc/httpd/conf.d/welcome.conf

Скриншот 4

Скриншот 5

Для сохранения нажимаем сочетание клавиш Ctrl+O, затем для подтверждения жмем Enter и для выхода из редактора Ctrl+X.

 
   systemctl restart httpd

Скриншот 6

Проверяем работу, и у нас должно отобразиться вот это

Скриншот 7

Т.е. список каталогов и файлов, но так как у нас еще нет никаких файлов и папок в корневом каталоге, то, соответственно, ничего и не отображается.

Настраиваем каталоги http сервера

Теперь давайте создадим структуру каталогов и соответственно сами каталоги для наших сайтов, и добавим файл конфигурации хоста, в котором будут храниться настройки нашего первого тестового сайта. Предлагаю следующую структуру, в корневой директории http сервера, т.е. в /var/www/html/ будем создавать отдельные каталоги для каждого сайта, например, для тестового сайта структура следующая:

/var/www/html/testsite/www/ — файлы сайта

/var/www/html/testsite/logs/ — логи сайта

т.е. в домашней директории (html) создаем папку с названием сайта (testsite), в которой создаем папки www и logs, в первой из которых будут располагаться все файлы и папки сайта, а во второй лог обращений и лог ошибок.

Данные каталоги создаем следующими командами:

 
   mkdir -p /var/www/html/testsite
   mkdir -p /var/www/html/testsite/www
   mkdir -p /var/www/html/testsite/logs

Скриншот 8

Настраиваем конфиг для тестового сайта

Давайте создадим конфигурационный файл для сайта, для каждого сайта будем делать отдельный файл, в нашем случае предлагаю назвать его также как и корневой каталог, т.е. testsite, расширение conf, в итоге мы должны создать файл testsite.conf в директории с остальными конфигами (мы туда уже заглядывали) т.е. в /etc/httpd/conf.d/

 
   touch /etc/httpd/conf.d/testsite.conf

Открываем его на редактирование тем же самым редактором nano

Курс по SQL для начинающих

 
   nano /etc/httpd/conf.d/testsite.conf

И вносим следующие настройки (я их прокомментировал)

 
   <VirtualHost *:80>
   #доменное имя (для примера я просто укажу локальный адрес)
   ServerName 127.0.0.1
   #Корневой каталог сайта
   DocumentRoot /var/www/html/testsite/www
   #Настройки каталога www
   <Directory /var/www/html/testsite/www>
   #запрещаем просмотр списка файлов и папок
   Options -Indexes
   #Разрешаем читать файл .htaccess
   AllowOverride All
   #Разрешаем доступ
   Require all granted
   </Directory>
   #Путь к лог файлу ошибок
   ErrorLog /var/www/html/testsite/logs/error.log
   #Путь к файлу обращений
   CustomLog /var/www/html/testsite/logs/access.log common
   </VirtualHost>

Скриншот 9

Сохраняем и закрываем тем же самым способом, как мы это делали чуть ранее.

Теперь нам нужно перезапустить Apache, но если мы попытаемся это сделать, у нас ничего не получится, http сервер остановится, но не запустится и в данном случае это будет связанно с настройками безопасности SELinux, а если говорить конкретно, то веб сервер попытается записать данные в лог, но не сможет, поэтому давайте перейдем к настройкам SELinux.

Настраиваем SELinux в CentOS 7.1 для WEB сервера

SELinux (Linux с улучшенной безопасностью) – это система контроля доступа, которая является частью ядра Linux. В некоторых дистрибутивах Linux данная система безопасности по умолчанию включена, например, как у нас в CentOS. В Интернете можно встретить статьи, где веб мастера рекомендуют вообще выключать систему SELinux, также как и файрвол, но самом деле этого лучше не делать, а просто настроить эти компоненты, файрвол мы уже настроили выше, теперь давайте настроим SELinux.

Первое, что мы сделаем — это разрешим посылать запросы из скриптов к базе данных, это делается вот так:

 
   setsebool -P httpd_can_network_connect on

А затем как раз зададим контекст безопасности для каталога logs, чтобы web-сервер мог писать в него, первой командой мы задаем этот контекст безопасности, а второй переконфигурируем SELinux

 
   semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/testsite/logs'
   restorecon -v '/var/www/html/testsite/logs'

Теперь давайте перезагрузимся

 
   reboot

Скриншот 10

Проверяем работу HTTP-сервера, как обычно обращаемся в браузере к нашему серверу по его адресу. В данный момент мы должны получить ответ Forbidden

Скриншот 11

т.е. отказано в доступе, так как никаких файлов в нашем каталоге еще нет, а листинг директорий мы отключили.

Устанавливаем PHP на CentOS 7.1

Для установки языка программирования PHP на CentOS необходимо выполнить следующую команду, но учтите, что если Вы используете дополнительные расширения PHP, то их необходимо включать в установку, например, мы сразу установим расширение для работы с базой MySQL (указываем название расширения через пробел). Если Вы не знаете, какие расширения Вы будете использовать, то ничего страшного, потом их конечно можно доустановить, итак, команда для установки php и расширения mysql будет выглядеть следующим образом (все от имени root):

 
   yum -y install php php-mysql

 
   systemctl restart httpd

Скриншот 12

Для проверки установился ли PHP, создаем тестовый файл (например, таким же способом как мы создавали конфиг Apache чуть выше), допустим с названием test.php в директории тестового сайта (/var/www/html/testsite/www/), содержание файла следующее (просто информация о PHP)

 
   <?PHP
         echo phpinfo();
   ?>

Скриншот 13

После создания мы обращаемся к этому файлу из браузера, например ip_адрес/test.php

В ответ мы должны получить вот такую страницу

Скриншот 14

Как видите, у нас установилась версия PHP 5.4.16.

Устанавливаем MySQL/MariaDB на CentOS 7.1

В операционной системе CentOS 7.1 в качестве сервера баз данных используется не сама СУБД MySQL, а ее ответвление MariaDB. Эти базы полностью совместимы, только MariaDB разрабатывается и поддерживается сообществом (как Вы знаете, MySQL поддерживает компания Oracle) и является полностью бесплатной.

Для установки MariaDB пишем следующую команду

 
   yum -y install mariadb-server mariadb

 
   systemctl start mariadb

Помещаем в автозагрузку

 
   systemctl enable mariadb

Задаем пароль для root пользователя

 
   mysqladmin -u root password 'Придуманный_пароль'

Запускаем скрипт безопасной установки — это нужно, для того чтобы удалить опасные настройки по умолчанию, например анонимных пользователей

 
   mysql_secure_installation

Сначала Вас спросят пароль root пользователя, а затем если Вы, конечно, захотите установить новый пароль для root, но мы его и так только что задали. На все остальные вопросы отвечаем y (т.е. да)

Скриншот 15

Проверяем работу MariaDB

Чтобы проверить работу MariaDB исправим немного наш тестовый скрипт (test.php). Пишем следующий код PHP.

   
        <?php
        ini_set('display_errors', 1); //Включаем вывод ошибок на страницу
        $dbServer = "127.0.0.1"; //Адрес сервера БД
        $dbname = "mysql"; //База данных (тестовая по умолчанию)
        $dbuser = "root"; //Имя пользователя БД
        $dbpass = "12345"; //Пароль пользователя БД
        //Подключаемся к серверу
        $dbconn = @mysql_connect($dbServer, $dbuser, $dbpass);
        //Проверка доступности сервера
        if (!$dbconn){
                echo "<p>Сервер баз данных недоступен</p>";
                exit();
        }
        //Проверка доступности базы данных
        if (!@mysql_select_db($dbname,$dbconn)){
                echo "<p>База данных недоступна</p>";
                exit();
        }
        //Простой запрос, узнаем версию MariaDB 
        $VERSION = mysql_query("SELECT VERSION()");
        if(!$VERSION){
                echo "<p>Ошибка в запросе</p>";
                exit();
        }
        echo mysql_result($VERSION, 0);
        ?> 


Также в браузере вызываем test.php и если все хорошо, то в ответ мы получим версию MariaDB, в моем случае это 5.5.41-MariaDB.

Заметка! Рейтинг популярности серверных дистрибутивов Linux.

Вот мы с Вами и настроили полноценный WEB-сервер, надеюсь, данный материал был Вам полезен, удачи!

[root@host]# mysqladmin -u root -p create PRODUCTS
Enter password:******

PHP Создать скрипт базы данных

PHP использует функцию mysql_query при создании базы данных MariaDB. Функция использует два параметра, один необязательный, и возвращает либо значение «истина» в случае успеха, либо «ложь», если нет.

Просмотрите следующий синтаксис сценария создания базы данных

bool mysql_query( sql, connection );

Описание параметров приведено ниже –

Этот обязательный параметр состоит из SQL-запроса, необходимого для выполнения операции.

Если этот параметр не указан, этот необязательный параметр использует последнее использованное соединение.

Попробуйте следующий пример кода для создания базы данных –


   
      Create a MariaDB Database
   

   
      php
         $dbhost    
      
          
            'Could not connect: ' 
         'Connected successfully<br />' 'CREATE DATABASE PRODUCTS'
      
          
            'Could not create database: ' 
         "Database PRODUCTS created successfully\n"
      
   

При успешном удалении вы увидите следующий вывод:

Вот простой пример для создания базы данных под названием учебники

[root@host]# mysqladmin -u root -p create TUTORIALS
Enter password:******

Это создаст базу данных MySQLi.

Создать базу данных с помощью PHP Script

PHP использует функцию mysqli_query для создания или удаления базы данных MySQLi. Эта функция принимает два параметра и возвращает TRUE в случае успеха или FALSE в случае ошибки.

Попробуйте следующий пример для создания базы данных –


   
      Connecting MySQLi Server
   
   
   
      php
         $dbhost    
   
         
          "CREATE DATABASE TUTORIALS"
         
           "Database created successfully"
           "Error creating database: " 
         
      
   

Если база данных подключена и создана успешно, пример вывода должен быть таким:

MySQL – Введение

База данных – это отдельное приложение, которое хранит коллекцию данных. Каждая база данных имеет один или несколько отдельных API для создания, доступа, управления, поиска и репликации данных, которые она хранит.

Можно также использовать другие виды хранилищ данных, например, файлы в файловой системе или большие хеш-таблицы в памяти, но выборка и запись данных не будут такими быстрыми и простыми в системах такого типа.

В настоящее время мы используем системы управления реляционными базами данных (RDBMS) для хранения и управления огромным объемом данных. Это называется реляционной базой данных, поскольку все данные хранятся в разных таблицах, а отношения устанавливаются с использованием первичных ключей или других ключей, известных как внешние ключи .

Реляционная система управления базами данных (RDBMS) – это программное обеспечение, которое –

  • Позволяет реализовать базу данных с таблицами, столбцами и индексами.

  • Гарантирует ссылочную целостность между рядами различных таблиц.

  • Обновляет индексы автоматически.

  • Интерпретирует SQL-запрос и объединяет информацию из различных таблиц.

Позволяет реализовать базу данных с таблицами, столбцами и индексами.

Гарантирует ссылочную целостность между рядами различных таблиц.

Обновляет индексы автоматически.

Интерпретирует SQL-запрос и объединяет информацию из различных таблиц.

Прежде чем приступить к объяснению системы баз данных MySQL, давайте пересмотрим несколько определений, связанных с базой данных.

  • База данных. База данных – это набор таблиц со связанными данными.

  • Таблица – Таблица представляет собой матрицу с данными. Таблица в базе данных выглядит как простая электронная таблица.

  • Столбец – один столбец (элемент данных) содержит данные одного и того же вида, например, почтовый индекс столбца.

  • Строка. Строка (= кортеж, запись или запись) представляет собой группу связанных данных, например, данных одной подписки.

  • Избыточность – Двойное хранение данных с избыточностью для ускорения работы системы.

  • Первичный ключ – первичный ключ уникален. Значение ключа не может встречаться дважды в одной таблице. С помощью ключа вы можете найти только один ряд.

  • Внешний ключ – внешний ключ – это связующий вывод между двумя таблицами.

  • Составной ключ – составной ключ (составной ключ) – это ключ, состоящий из нескольких столбцов, поскольку один столбец недостаточно уникален.

  • Индекс – Индекс в базе данных напоминает индекс в конце книги.

  • Ссылочная целостность – Ссылочная целостность гарантирует, что значение внешнего ключа всегда указывает на существующую строку.

Дополнительно:  Восстановление пароля root astra linux

База данных. База данных – это набор таблиц со связанными данными.

Таблица – Таблица представляет собой матрицу с данными. Таблица в базе данных выглядит как простая электронная таблица.

Столбец – один столбец (элемент данных) содержит данные одного и того же вида, например, почтовый индекс столбца.

Строка. Строка (= кортеж, запись или запись) представляет собой группу связанных данных, например, данных одной подписки.

Избыточность – Двойное хранение данных с избыточностью для ускорения работы системы.

Первичный ключ – первичный ключ уникален. Значение ключа не может встречаться дважды в одной таблице. С помощью ключа вы можете найти только один ряд.

Внешний ключ – внешний ключ – это связующий вывод между двумя таблицами.

Составной ключ – составной ключ (составной ключ) – это ключ, состоящий из нескольких столбцов, поскольку один столбец недостаточно уникален.

Индекс – Индекс в базе данных напоминает индекс в конце книги.

Ссылочная целостность – Ссылочная целостность гарантирует, что значение внешнего ключа всегда указывает на существующую строку.

База данных MySQL

MySQL – это быстрая и простая в использовании СУБД, используемая для многих малых и крупных предприятий. MySQL разрабатывается, продается и поддерживается MySQL AB, шведской компанией. MySQL становится настолько популярным по многим веским причинам –

  • MySQL выпущен под лицензией с открытым исходным кодом. Таким образом, вам нечего платить, чтобы использовать его.

  • MySQL – очень мощная программа сама по себе. Он обрабатывает большой набор функций самых дорогих и мощных пакетов баз данных.

  • MySQL использует стандартную форму известного языка данных SQL.

  • MySQL работает во многих операционных системах и со многими языками, включая PHP, PERL, C, C ++, JAVA и т. Д.

  • MySQL работает очень быстро и хорошо работает даже с большими наборами данных.

  • MySQL очень дружелюбен к PHP, самый ценный язык для веб-разработки.

  • MySQL поддерживает большие базы данных, до 50 миллионов или более строк в таблице. Предельный размер файла по умолчанию для таблицы составляет 4 ГБ, но вы можете увеличить его (если ваша операционная система может его обработать) до теоретического предела 8 миллионов терабайт (ТБ).

  • Лицензия GPL с открытым исходным кодом позволяет программистам модифицировать программное обеспечение MySQL в соответствии со своими специфическими средами.

MySQL выпущен под лицензией с открытым исходным кодом. Таким образом, вам нечего платить, чтобы использовать его.

MySQL – очень мощная программа сама по себе. Он обрабатывает большой набор функций самых дорогих и мощных пакетов баз данных.

MySQL использует стандартную форму известного языка данных SQL.

MySQL работает во многих операционных системах и со многими языками, включая PHP, PERL, C, C ++, JAVA и т. Д.

MySQL работает очень быстро и хорошо работает даже с большими наборами данных.

MySQL очень дружелюбен к PHP, самый ценный язык для веб-разработки.

MySQL поддерживает большие базы данных, до 50 миллионов или более строк в таблице. Предельный размер файла по умолчанию для таблицы составляет 4 ГБ, но вы можете увеличить его (если ваша операционная система может его обработать) до теоретического предела 8 миллионов терабайт (ТБ).

Лицензия GPL с открытым исходным кодом позволяет программистам модифицировать программное обеспечение MySQL в соответствии со своими специфическими средами.

Прежде чем вы начнете

Прежде чем вы начнете этот урок, вы должны иметь базовые знания по информации, описанной в наших уроках PHP и HTML.

В этом руководстве основное внимание уделяется использованию MySQL в среде PHP. Многие примеры, приведенные в этом руководстве, будут полезны для программистов PHP.

Мы рекомендуем вам ознакомиться с нашим учебником PHP для вашей справки.

MySQL – Установка

Все загрузки для MySQL находятся на MySQL Downloads . Выберите номер версии MySQL Community Server, который требуется вместе с платформой, на которой он будет работать.

Установка MySQL в Linux / UNIX

Рекомендуемый способ установки MySQL в системе Linux – через RPM. MySQL AB делает доступными для загрузки на своем сайте следующие RPM –

  • MySQL – сервер баз данных MySQL управляет базами данных и таблицами, контролирует доступ пользователей и обрабатывает запросы SQL.

  • MySQL-клиент – клиентские программы MySQL, которые позволяют подключаться и взаимодействовать с сервером.

  • MySQL-devel – библиотеки и заголовочные файлы, которые пригодятся при компиляции других программ, использующих MySQL.

  • MySQL-bench – средства тестирования производительности и производительности для сервера баз данных MySQL.

MySQL – сервер баз данных MySQL управляет базами данных и таблицами, контролирует доступ пользователей и обрабатывает запросы SQL.

MySQL-клиент – клиентские программы MySQL, которые позволяют подключаться и взаимодействовать с сервером.

MySQL-devel – библиотеки и заголовочные файлы, которые пригодятся при компиляции других программ, использующих MySQL.

MySQL-bench – средства тестирования производительности и производительности для сервера баз данных MySQL.

Перечисленные здесь RPM-пакеты для MySQL все построены на системе SuSE Linux , но обычно без проблем работают на других вариантах Linux.

Теперь вам нужно будет следовать приведенным ниже шагам, чтобы продолжить установку –

  • Войдите в систему, используя пользователя root .

  • Переключитесь на каталог, содержащий RPM.

  • Установите сервер базы данных MySQL, выполнив следующую команду. Не забудьте заменить имя файла курсивом на имя файла вашего RPM.

Войдите в систему, используя пользователя root .

Переключитесь на каталог, содержащий RPM.

Установите сервер базы данных MySQL, выполнив следующую команду. Не забудьте заменить имя файла курсивом на имя файла вашего RPM.

[root@host]# rpm -i MySQL-5.0.9-0.i386.rpm

Вышеупомянутая команда заботится об установке сервера MySQL, создании пользователя MySQL, создании необходимой конфигурации и автоматическом запуске сервера MySQL.

Вы можете найти все связанные с MySQL двоичные файлы в / usr / bin и / usr / sbin. Все таблицы и базы данных будут созданы в каталоге / var / lib / mysql.

В следующем поле кода есть необязательный, но рекомендуемый шаг для установки оставшихся RPM таким же образом.

[root@host]# rpm -i MySQL-client-5.0.9-0.i386.rpm
[root@host]# rpm -i MySQL-devel-5.0.9-0.i386.rpm
[root@host]# rpm -i MySQL-shared-5.0.9-0.i386.rpm
[root@host]# rpm -i MySQL-bench-5.0.9-0.i386.rpm

Установка MySQL в Windows

Установщик по умолчанию setup.exe проведет вас через простой процесс и по умолчанию установит все в C: \ mysql.

Протестируйте сервер, запустив его из командной строки в первый раз. Перейдите в расположение сервера mysqld, который, вероятно, C: \ mysql \ bin, и введите –

mysqld.exe --console

ПРИМЕЧАНИЕ. – Если вы работаете в NT, вам придется использовать mysqld-nt.exe вместо mysqld.exe

Если все прошло хорошо, вы увидите несколько сообщений о запуске и InnoDB . Если нет, возможно, у вас есть проблема с разрешениями. Убедитесь, что каталог, содержащий ваши данные, доступен любому пользователю (возможно, MySQL), под которым выполняются процессы базы данных.

Проверка установки MySQL

После успешной установки MySQL базовые таблицы были инициализированы и сервер запущен: вы можете проверить, что все работает так, как должно быть, с помощью нескольких простых тестов.

[root@host]# mysqladmin --version

Это даст следующий результат в Linux. Это может варьироваться в зависимости от вашей установки –

mysqladmin  Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

Если вы не получили такого сообщения, возможно, в вашей установке возникла проблема, и вам понадобится помощь, чтобы исправить ее.

Выполните простые команды SQL, используя MySQL Client

Вы можете подключиться к вашему серверу MySQL через клиент MySQL и с помощью команды mysql . На данный момент вам не нужно вводить пароль, так как по умолчанию он будет пустым.

Вы можете просто использовать следующую команду –

[root@host]# mysql

Это должно быть вознаграждено приглашением mysql>. Теперь вы подключены к серверу MySQL и можете выполнить все команды SQL в приглашении mysql> следующим образом:

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
|   mysql  | 
|   test   |  
+----------+
2 rows in set (0.13 sec)

Шаги после установки

MySQL поставляется с пустым паролем для пользователя root MySQL. Как только вы успешно установили базу данных и клиент, вам нужно установить пароль root, как указано в следующем блоке кода:

[root@host]# mysqladmin -u root password "new_password";

Теперь, чтобы установить соединение с вашим сервером MySQL, вам нужно использовать следующую команду:

[root@host]# mysql -u root -p
Enter password:*******

Пользователи UNIX также захотят поместить ваш каталог MySQL в ваш PATH, поэтому вам не придется вводить полный путь каждый раз, когда вы хотите использовать клиент командной строки.

Для bash это было бы что-то вроде –

export PATH = $PATH:/usr/bin:/usr/sbin

Запуск MySQL во время загрузки

Если вы хотите запустить сервер MySQL во время загрузки, убедитесь, что в файле /etc/rc.local есть следующая запись.

/etc/init.d/mysqld start

Также у вас должен быть бинарный файл mysqld в каталоге /etc/init.d/.

Запуск и завершение работы MySQL Server

Сначала проверьте, работает ваш сервер MySQL или нет. Вы можете использовать следующую команду, чтобы проверить это –

ps -ef | grep mysqld

Если ваш MySql запущен, вы увидите процесс mysqld, перечисленный в вашем результате. Если сервер не запущен, вы можете запустить его с помощью следующей команды –

root@host# cd /usr/bin
./safe_mysqld &

Теперь, если вы хотите выключить уже работающий сервер MySQL, вы можете сделать это с помощью следующей команды:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

Настройка учетной записи пользователя MySQL

Чтобы добавить нового пользователя в MySQL, вам просто нужно добавить новую запись в таблицу пользователей в базе данных mysql .

Следующая программа является примером добавления нового гостя пользователя с привилегиями SELECT, INSERT и UPDATE с паролем guest123;

# mysql -u root -p
 
    
 
  

    

  

  

При добавлении нового пользователя не забудьте зашифровать новый пароль с помощью функции PASSWORD (), предоставляемой MySQL. Как видно из приведенного выше примера, пароль mypass зашифрован на 6f8c114b58f2ce9e.

Обратите внимание на утверждение FLUSH PRIVILEGES. Это говорит серверу перезагрузить таблицы предоставления. Если вы не используете его, то вы не сможете подключиться к MySQL, используя новую учетную запись пользователя, по крайней мере, до перезагрузки сервера.

Вы также можете указать другие привилегии для нового пользователя, установив значения следующих столбцов в пользовательской таблице на «Y» при выполнении запроса INSERT, или вы можете обновить их позже, используя запрос UPDATE.

Другой способ добавить учетную запись пользователя – использовать команду GRANT SQL. В следующем примере будет добавлен пользователь zara с паролем zara123 для конкретной базы данных, которая называется TUTORIALS .

# mysql -u root -p password;
 

   
   

ПРИМЕЧАНИЕ. – MySQL не завершает команду, пока вы не введете точку с запятой (;) в конце команды SQL.

Конфигурация файла /etc/my.cnf

В большинстве случаев вам не следует трогать этот файл. По умолчанию он будет иметь следующие записи –

     

Здесь вы можете указать другой каталог для журнала ошибок, в противном случае вам не следует изменять какие-либо записи в этой таблице.

Административная команда MySQL

Вот список важных команд MySQL, которые вы будете время от времени использовать для работы с базой данных MySQL –

  • USE Databasename – это будет использоваться для выбора базы данных в рабочей области MySQL.

  • ПОКАЗАТЬ БАЗЫ ДАННЫХ – перечисляет базы данных, которые доступны СУБД MySQL.

  • SHOW TABLES – Показывает таблицы в базе данных после выбора базы данных командой use.

  • SHOW COLUMNS FROM tablename: показывает атрибуты, типы атрибутов, ключевую информацию, разрешен ли NULL, значения по умолчанию и другую информацию для таблицы.

  • SHOW INDEX FROM tablename – представляет подробную информацию обо всех индексах таблицы, включая ПЕРВИЧНЫЙ КЛЮЧ.

  • SHOW TABLE STATUS LIKE tablename \ G – Сообщает подробную информацию о производительности и статистике СУБД MySQL.

USE Databasename – это будет использоваться для выбора базы данных в рабочей области MySQL.

ПОКАЗАТЬ БАЗЫ ДАННЫХ – перечисляет базы данных, которые доступны СУБД MySQL.

SHOW TABLES – Показывает таблицы в базе данных после выбора базы данных командой use.

SHOW COLUMNS FROM tablename: показывает атрибуты, типы атрибутов, ключевую информацию, разрешен ли NULL, значения по умолчанию и другую информацию для таблицы.

SHOW INDEX FROM tablename – представляет подробную информацию обо всех индексах таблицы, включая ПЕРВИЧНЫЙ КЛЮЧ.

SHOW TABLE STATUS LIKE tablename \ G – Сообщает подробную информацию о производительности и статистике СУБД MySQL.

В следующей главе мы обсудим, как синтаксис PHP используется в MySQL.

MySQL – синтаксис PHP

MySQL очень хорошо работает в сочетании с различными языками программирования, такими как PERL, C, C ++, JAVA и PHP. Из этих языков PHP является самым популярным из-за своих возможностей разработки веб-приложений.

В этом руководстве основное внимание уделяется использованию MySQL в среде PHP. Если вы заинтересованы в MySQL с PERL, вы можете прочитать руководство по PERL .

PHP предоставляет различные функции для доступа к базе данных MySQL и для манипулирования записями данных внутри базы данных MySQL. Вам потребуется вызывать функции PHP так же, как вы вызываете любую другую функцию PHP.

Функции PHP для использования с MySQL имеют следующий общий формат –

mysql_ function (value,value,...);

Вторая часть имени функции специфична для функции, обычно это слово, которое описывает, что делает функция. Ниже приведены две функции, которые мы будем использовать в нашем уроке:

mysqli_connect($connect);
mysqli_query($connect,"SQL statement");

В следующем примере показан общий синтаксис PHP для вызова любой функции MySQL.


   
      PHP with MySQL
   
   
   
      php
         $retval   
           
              "Error: a related error message" 
         
         // Otherwise MySQL  or PHP Statements
      
   

Начиная со следующей главы, мы увидим все важные функции MySQL вместе с PHP.

MySQL Connection Используя MySQL Binary

Вы можете установить базу данных MySQL, используя двоичный файл mysql в командной строке.

Вот простой пример подключения к серверу MySQL из командной строки:

[root@host]# mysql -u root -p
Enter password:******

Это даст вам командную строку mysql>, где вы сможете выполнить любую команду SQL. Ниже приведен результат вышеупомянутой команды –

Следующий блок кода показывает результат кода выше –

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2854760 to server version: 5.0.9

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

В приведенном выше примере мы использовали root как пользователь, но вы также можете использовать любого другого пользователя. Любой пользователь сможет выполнять все операции SQL, которые ему разрешены.

Вы можете отключиться от базы данных MySQL в любое время, используя команду exit в приглашении mysql>.

mysql> exit
Bye

MySQL Connection Используя PHP Script

PHP предоставляет функцию mysql_connect () для открытия соединения с базой данных. Эта функция принимает пять параметров и возвращает идентификатор ссылки MySQL в случае успеха или FALSE в случае ошибки.

Дополнительно:  ® GameGuardian

connection mysql_connect(server,user,passwd,new_link,client_flag);

Необязательно – имя хоста, на котором работает сервер базы данных. Если не указан, то значением по умолчанию будет localhost: 3306 .

Необязательно – имя пользователя для доступа к базе данных. Если не указан, то по умолчанию будет указано имя пользователя, которому принадлежит процесс сервера.

Необязательно – пароль пользователя, обращающегося к базе данных. Если не указан, то по умолчанию будет пустой пароль.

Необязательно – Если для mysql_connect () сделан второй вызов с теми же аргументами, новое соединение не будет установлено; вместо этого будет возвращен идентификатор уже открытого соединения.

Необязательно – комбинация следующих констант –

MYSQL_CLIENT_SSL – использовать шифрование SSL.

MYSQL_CLIENT_COMPRESS – Использовать протокол сжатия.

MYSQL_CLIENT_IGNORE_SPACE – Разрешить пробел после имен функций.

MYSQL_CLIENT_INTERACTIVE – разрешить интерактивное время ожидания в секундах бездействия перед закрытием соединения.

Вы можете отключиться от базы данных MySQL в любое время, используя другую функцию PHP mysql_close () . Эта функция принимает единственный параметр, который является соединением, возвращаемым функцией mysql_connect () .

bool mysql_close ( resource $link_identifier );

Если ресурс не указан, то последняя открытая база данных закрывается. Эта функция возвращает true, если она успешно закрывает соединение, в противном случае возвращает false.

Попробуйте следующий пример для подключения к серверу MySQL –

<html>
   <head>
      <title>Connecting MySQL Server</title>
   </head>
   <body>
      <?php
         $dbhost = 'localhost:3306';
         $dbuser = 'guest';
         $dbpass = 'guest123';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully';
         mysql_close($conn);
      ?>
   </body>
</html>

Вот простой пример создания базы данных под названием TUTORIALS

[root@host]# mysqladmin -u root -p create TUTORIALS
Enter password:******

Это создаст базу данных MySQL под названием TUTORIALS.

Создать базу данных с помощью PHP Script

PHP использует функцию mysql_query для создания или удаления базы данных MySQL. Эта функция принимает два параметра и возвращает TRUE в случае успеха или FALSE в случае ошибки.

bool mysql_query( sql, connection );

Обязательно – запрос SQL для создания или удаления базы данных MySQL

Необязательно – если не указан, будет использовано последнее открытое соединение с помощью mysql_connect.

Следующий пример для создания базы данных –

<html>
   <head>
      <title>Creating MySQL Database</title>
   </head>
   
   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root';
         $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully<br />';
         $sql = 'CREATE DATABASE TUTORIALS';
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not create database: ' . mysql_error());
         }
         echo "Database TUTORIALS created successfully\n";
         mysql_close($conn);
      ?>
   </body>
</html>

Будьте осторожны при удалении любой базы данных, потому что вы потеряете все данные, имеющиеся в вашей базе данных.

Вот пример для удаления базы данных (учебники), созданной в предыдущей главе –

[root@host]# mysqladmin -u root -p drop TUTORIALS
Enter password:******

Это даст вам предупреждение и подтвердит, действительно ли вы хотите удалить эту базу данных или нет.

Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'TUTORIALS' database [y/N] y
Database "TUTORIALS" dropped

Удалить базу данных с помощью PHP Script

PHP использует функцию mysql_query для создания или удаления базы данных MySQL. Эта функция принимает два параметра и возвращает TRUE в случае успеха или FALSE в случае ошибки.

bool mysql_query( sql, connection );

Обязательно – запрос SQL для создания или удаления базы данных MySQL

Необязательно – если не указан, будет использовано последнее открытое соединение с помощью mysql_connect.

Попробуйте следующий пример, чтобы удалить базу данных –

<html>
   <head>
      <title>Deleting MySQL Database</title>
   </head>
   
   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root';
         $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully<br />';
         $sql = 'DROP DATABASE TUTORIALS';
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not delete database: ' . mysql_error());
         }
         echo "Database TUTORIALS deleted successfully\n";
         mysql_close($conn);
      ?>
   </body>
</html>

ПРЕДУПРЕЖДЕНИЕ. При удалении базы данных с использованием сценария PHP он не запрашивает никакого подтверждения. Поэтому будьте осторожны при удалении базы данных MySQL.

Выбор базы данных MySQL

Как только вы подключаетесь к серверу MySQL, вам необходимо выбрать базу данных для работы. Это потому, что может быть несколько баз данных, доступных с MySQL Server.

Выбор базы данных MySQL из командной строки

Выбрать базу данных из командной строки mysql> очень просто. Вы можете использовать команду SQL для выбора базы данных.

Вот пример для выбора базы данных под названием TUTORIALS

[root@host]# mysql -u root -p
Enter password:******
mysql> use TUTORIALS;
Database changed
mysql> 

Теперь вы выбрали базу данных TUTORIALS, и все последующие операции будут выполнены с базой данных TUTORIALS.

ПРИМЕЧАНИЕ. – Все имена баз данных, имена таблиц, имена полей таблиц чувствительны к регистру. Таким образом, вы должны будете использовать правильные имена, давая любую команду SQL.

Выбор базы данных MySQL с использованием PHP-скрипта

PHP предоставляет функцию mysql_select_db для выбора базы данных. Возвращает TRUE в случае успеха или FALSE в случае неудачи.

bool mysql_select_db( db_name, connection );

Обязательно – имя базы данных MySQL для выбора

Необязательно – если не указан, будет использовано последнее открытое соединение с помощью mysql_connect.

Вот пример, показывающий, как выбрать базу данных.

<html>
   <head>
      <title>Selecting MySQL Database</title>
   </head>
   
   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'guest';
         $dbpass = 'guest123';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully';
         mysql_select_db( 'TUTORIALS' );
         
         mysql_close($conn);
      ?>
   </body>
</html>

MySQL – типы данных

Правильное определение полей в таблице важно для общей оптимизации вашей базы данных. Вы должны использовать только тот тип и размер поля, которые вам действительно нужны. Например, не определяйте поле шириной 10 символов, если вы знаете, что собираетесь использовать только 2 символа. Эти типы полей (или столбцов) также называются типами данных после типа данных, которые вы будете хранить в этих полях.

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

  • Дата и время

Давайте теперь обсудим их подробно.

Числовые типы данных

MySQL использует все стандартные числовые типы данных ANSI SQL, поэтому, если вы переходите на MySQL из другой системы баз данных, эти определения будут вам знакомы.

В следующем списке показаны распространенные числовые типы данных и их описания.

  • INT – целое число нормального размера, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -2147483648 до 2147483647. Если не подписан, допустимый диапазон составляет от 0 до 4294967295. Можно указать ширину до 11 цифр.

  • TINYINT – очень маленькое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -128 до 127. Если без знака, допустимый диапазон составляет от 0 до 255. Можно указать ширину до 4 цифр.

  • SMALLINT – небольшое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -32768 до 32767. Если не подписан, допустимый диапазон составляет от 0 до 65535. Можно указать ширину до 5 цифр.

  • MEDIUMINT – целое число среднего размера, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -8388608 до 8388607. Если не подписан, допустимый диапазон составляет от 0 до 16777215. Вы можете указать ширину до 9 цифр.

  • BIGINT – большое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -9223372036854775808 до 9223372036854775807. Если он не подписан, допустимый диапазон составляет от 0 до 18446744073709551615. Можно указать ширину до 20 цифр.

  • FLOAT (M, D) – число с плавающей точкой, которое не может быть без знака. Вы можете определить длину дисплея (M) и количество десятичных знаков (D). Это не обязательно и по умолчанию будет 10,2, где 2 – количество десятичных знаков, а 10 – общее количество цифр (включая десятичные дроби). Десятичная точность может идти до 24 мест для FLOAT.

  • DOUBLE (M, D) – число с плавающей запятой двойной точности, которое не может быть без знака. Вы можете определить длину дисплея (M) и количество десятичных знаков (D). Это не обязательно и по умолчанию будет 16,4, где 4 – количество десятичных знаков. Десятичная точность может пойти в 53 места для ДВОЙНОГО. REAL является синонимом для DOUBLE.

  • DECIMAL (M, D) – неупакованное число с плавающей точкой, которое не может быть без знака. В распакованных десятичных числах каждое десятичное число соответствует одному байту. Требуется определить длину отображения (M) и количество десятичных знаков (D). NUMERIC – это синоним DECIMAL.

INT – целое число нормального размера, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -2147483648 до 2147483647. Если не подписан, допустимый диапазон составляет от 0 до 4294967295. Можно указать ширину до 11 цифр.

TINYINT – очень маленькое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -128 до 127. Если без знака, допустимый диапазон составляет от 0 до 255. Можно указать ширину до 4 цифр.

SMALLINT – небольшое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -32768 до 32767. Если не подписан, допустимый диапазон составляет от 0 до 65535. Можно указать ширину до 5 цифр.

MEDIUMINT – целое число среднего размера, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -8388608 до 8388607. Если не подписан, допустимый диапазон составляет от 0 до 16777215. Вы можете указать ширину до 9 цифр.

BIGINT – большое целое число, которое может быть подписано или не подписано. Если подписано, допустимый диапазон составляет от -9223372036854775808 до 9223372036854775807. Если он не подписан, допустимый диапазон составляет от 0 до 18446744073709551615. Можно указать ширину до 20 цифр.

FLOAT (M, D) – число с плавающей точкой, которое не может быть без знака. Вы можете определить длину дисплея (M) и количество десятичных знаков (D). Это не обязательно и по умолчанию будет 10,2, где 2 – количество десятичных знаков, а 10 – общее количество цифр (включая десятичные дроби). Десятичная точность может идти до 24 мест для FLOAT.

DOUBLE (M, D) – число с плавающей запятой двойной точности, которое не может быть без знака. Вы можете определить длину дисплея (M) и количество десятичных знаков (D). Это не обязательно и по умолчанию будет 16,4, где 4 – количество десятичных знаков. Десятичная точность может пойти в 53 места для ДВОЙНОГО. REAL является синонимом для DOUBLE.

DECIMAL (M, D) – неупакованное число с плавающей точкой, которое не может быть без знака. В распакованных десятичных числах каждое десятичное число соответствует одному байту. Требуется определить длину отображения (M) и количество десятичных знаков (D). NUMERIC – это синоним DECIMAL.

Типы даты и времени

Типы данных даты и времени MySQL:

  • ДАТА – дата в формате ГГГГ-ММ-ДД, между 1000-01-01 и 9999-12-31. Например, 30 декабря 1973 года будет храниться как 1973-12-30.

  • DATETIME – комбинация даты и времени в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС, между 1000-01-01 00:00:00 и 9999-12-31 23:59:59. Например, 3:30 дня 30 декабря 1973 года будет храниться как 1973-12-30 15:30:00.

  • TIMESTAMP – отметка времени между полуночью 1 января 1970 г. и примерно 2037 г. Это похоже на предыдущий формат DATETIME, только без дефисов между числами; 3:30 во второй половине дня 30 декабря 1973 г. будет сохранено как 19731230153000 (ГГГГММДДЧЧММСС).

  • ВРЕМЯ – сохраняет время в формате ЧЧ: ММ: СС.

  • ГОД (М) – Сохраняет год в двухзначном или четырехзначном формате. Если длина указана как 2 (например, ГОД (2)), ГОД может быть между 1970 и 2069 (70-69). Если длина указана как 4, то ГОД может быть от 1901 до 2155. Длина по умолчанию – 4.

ДАТА – дата в формате ГГГГ-ММ-ДД, между 1000-01-01 и 9999-12-31. Например, 30 декабря 1973 года будет храниться как 1973-12-30.

DATETIME – комбинация даты и времени в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС, между 1000-01-01 00:00:00 и 9999-12-31 23:59:59. Например, 3:30 дня 30 декабря 1973 года будет храниться как 1973-12-30 15:30:00.

TIMESTAMP – отметка времени между полуночью 1 января 1970 г. и примерно 2037 г. Это похоже на предыдущий формат DATETIME, только без дефисов между числами; 3:30 во второй половине дня 30 декабря 1973 г. будет сохранено как 19731230153000 (ГГГГММДДЧЧММСС).

ВРЕМЯ – сохраняет время в формате ЧЧ: ММ: СС.

ГОД (М) – Сохраняет год в двухзначном или четырехзначном формате. Если длина указана как 2 (например, ГОД (2)), ГОД может быть между 1970 и 2069 (70-69). Если длина указана как 4, то ГОД может быть от 1901 до 2155. Длина по умолчанию – 4.

Хотя числовой тип и тип даты являются забавными, большинство данных, которые вы будете хранить, будут в строковом формате. Этот список описывает общие типы данных строки в MySQL.

  • CHAR (M) – строка фиксированной длины длиной от 1 до 255 символов (например, CHAR (5)), дополненная справа пробелами до указанной длины при сохранении. Определение длины не требуется, но по умолчанию 1.

  • VARCHAR (M) – строка переменной длины длиной от 1 до 255 символов. Например, VARCHAR (25). Вы должны определить длину при создании поля VARCHAR.

  • BLOB или TEXT – поле длиной не более 65535 символов. BLOB – это «большие двоичные объекты», которые используются для хранения больших объемов двоичных данных, таких как изображения или другие типы файлов. Поля, определенные как ТЕКСТ, также содержат большие объемы данных. Разница между ними заключается в том, что сортировки и сравнения сохраненных данных чувствительны к регистру на BLOB и не чувствительны к регистру в полях TEXT. Вы не указываете длину с BLOB или TEXT.

  • TINYBLOB или TINYTEXTстолбец BLOB или TEXT, максимальная длина которого составляет 255 символов. Вы не указываете длину с TINYBLOB или TINYTEXT.

  • MEDIUMBLOB или MEDIUMTEXTстолбец BLOB или TEXT, максимальная длина которого составляет 16777215 символов. Вы не указываете длину с MEDIUMBLOB или MEDIUMTEXT.

  • LONGBLOB или LONGTEXTстолбец BLOB или TEXT, максимальная длина которого 4294967295 символов. Вы не указываете длину с LONGBLOB или LONGTEXT.

  • ENUM – перечисление, которое является необычным термином для списка. При определении ENUM вы создаете список элементов, из которых необходимо выбрать значение (или оно может быть NULL). Например, если вы хотите, чтобы ваше поле содержало «A», «B» или «C», вы должны определить свой ENUM как ENUM («A», «B», «C») и только эти значения (или NULL). мог когда-нибудь заполнить это поле.

Дополнительно:  How To Add a User and Grant Root Privileges on Ubuntu 18.04

CHAR (M) – строка фиксированной длины длиной от 1 до 255 символов (например, CHAR (5)), дополненная справа пробелами до указанной длины при сохранении. Определение длины не требуется, но по умолчанию 1.

VARCHAR (M) – строка переменной длины длиной от 1 до 255 символов. Например, VARCHAR (25). Вы должны определить длину при создании поля VARCHAR.

BLOB или TEXT – поле длиной не более 65535 символов. BLOB – это «большие двоичные объекты», которые используются для хранения больших объемов двоичных данных, таких как изображения или другие типы файлов. Поля, определенные как ТЕКСТ, также содержат большие объемы данных. Разница между ними заключается в том, что сортировки и сравнения сохраненных данных чувствительны к регистру на BLOB и не чувствительны к регистру в полях TEXT. Вы не указываете длину с BLOB или TEXT.

TINYBLOB или TINYTEXTстолбец BLOB или TEXT, максимальная длина которого составляет 255 символов. Вы не указываете длину с TINYBLOB или TINYTEXT.

MEDIUMBLOB или MEDIUMTEXTстолбец BLOB или TEXT, максимальная длина которого составляет 16777215 символов. Вы не указываете длину с MEDIUMBLOB или MEDIUMTEXT.

LONGBLOB или LONGTEXTстолбец BLOB или TEXT, максимальная длина которого 4294967295 символов. Вы не указываете длину с LONGBLOB или LONGTEXT.

ENUM – перечисление, которое является необычным термином для списка. При определении ENUM вы создаете список элементов, из которых необходимо выбрать значение (или оно может быть NULL). Например, если вы хотите, чтобы ваше поле содержало «A», «B» или «C», вы должны определить свой ENUM как ENUM («A», «B», «C») и только эти значения (или NULL). мог когда-нибудь заполнить это поле.

В следующей главе мы обсудим, как создавать таблицы в MySQL.

Создать таблицы MySQL

Для начала, команда создания таблицы требует следующих деталей –

  • Определения для каждого поля

Вот общий синтаксис SQL для создания таблицы MySQL:

CREATE TABLE table_name (column_name column_type);

Теперь мы создадим следующую таблицу в базе данных TUTORIALS .

create table tutorials_tbl(
   tutorial_id INT NOT NULL AUTO_INCREMENT,
   tutorial_title VARCHAR(100) NOT NULL,
   tutorial_author VARCHAR(40) NOT NULL,
   submission_date DATE,
   PRIMARY KEY ( tutorial_id )
);

Здесь некоторые пункты требуют объяснения –

  • Атрибут поля NOT NULL используется, потому что мы не хотим, чтобы это поле было NULL. Таким образом, если пользователь попытается создать запись со значением NULL, MySQL выдаст ошибку.

  • Атрибут поля AUTO_INCREMENT говорит MySQL, что нужно идти дальше и добавить следующий доступный номер в поле id.

  • Ключевое слово PRIMARY KEY используется для определения столбца в качестве первичного ключа. Вы можете использовать несколько столбцов, разделенных запятой, чтобы определить первичный ключ.

Атрибут поля NOT NULL используется, потому что мы не хотим, чтобы это поле было NULL. Таким образом, если пользователь попытается создать запись со значением NULL, MySQL выдаст ошибку.

Атрибут поля AUTO_INCREMENT говорит MySQL, что нужно идти дальше и добавить следующий доступный номер в поле id.

Ключевое слово PRIMARY KEY используется для определения столбца в качестве первичного ключа. Вы можете использовать несколько столбцов, разделенных запятой, чтобы определить первичный ключ.

Создание таблиц из командной строки

Создать таблицу MySQL легко из приглашения mysql>. Вы будете использовать команду SQL CREATE TABLE для создания таблицы.

Вот пример, который создаст tutorials_tbl

root@host# mysql -u root -p
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> CREATE TABLE tutorials_tbl(
   -> tutorial_id INT NOT NULL AUTO_INCREMENT,
   -> tutorial_title VARCHAR(100) NOT NULL,
   -> tutorial_author VARCHAR(40) NOT NULL,
   -> submission_date DATE,
   -> PRIMARY KEY ( tutorial_id )
   -> );
Query OK, 0 rows affected (0.16 sec)
mysql>

ПРИМЕЧАНИЕ. – MySQL не завершает команду, пока вы не дадите точку с запятой (;) в конце команды SQL.

Создание таблиц с использованием PHP Script

Для создания новой таблицы в любой существующей базе данных вам необходимо использовать функцию PHP mysql_query () . Вы передадите второй аргумент с правильной командой SQL для создания таблицы.

Следующая программа является примером для создания таблицы с использованием сценария PHP –

<html>
   <head>
      <title>Creating MySQL Tables</title>
   </head>
   
   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root';
         $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully<br />';
         $sql = "CREATE TABLE tutorials_tbl( ".
            "tutorial_id INT NOT NULL AUTO_INCREMENT, ".
            "tutorial_title VARCHAR(100) NOT NULL, ".
            "tutorial_author VARCHAR(40) NOT NULL, ".
            "submission_date DATE, ".
            "PRIMARY KEY ( tutorial_id )); ";
         mysql_select_db( 'TUTORIALS' );
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not create table: ' . mysql_error());
         }
         echo "Table created successfully\n";
         mysql_close($conn);
      ?>
   </body>
</html>

Отбросьте таблицы MySQL

Очень легко удалить существующую таблицу MySQL, но вы должны быть очень осторожны при удалении любой существующей таблицы, потому что потерянные данные не будут восстановлены после удаления таблицы.

Вот общий синтаксис SQL для удаления таблицы MySQL –

DROP TABLE table_name ;

Удаление таблиц из командной строки

Чтобы удалить таблицы из командной строки, нам нужно выполнить команду SQL DROP TABLE в командной строке mysql>.

Следующая программа является примером, который удаляет tutorials_tbl

root@host# mysql -u root -p
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> DROP TABLE tutorials_tbl
Query OK, 0 rows affected (0.8 sec)
mysql>

Удаление таблиц с использованием PHP-скрипта

Чтобы удалить существующую таблицу в любой базе данных, вам нужно использовать функцию PHP mysql_query () . Вы передадите второй аргумент с правильной командой SQL для удаления таблицы.

<html>
   <head>
      <title>Creating MySQL Tables</title>
   </head>
   
   <body>
      <?php
         $dbhost = 'localhost:3036';
         $dbuser = 'root';
         $dbpass = 'rootpassword';
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error());
         }
         echo 'Connected successfully<br />';
         $sql = "DROP TABLE tutorials_tbl";
         mysql_select_db( 'TUTORIALS' );
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not delete table: ' . mysql_error());
         }
         echo "Table deleted successfully\n";
         mysql_close($conn);
      ?>
   </body>
</html>

MySQL – Вставить запрос

Чтобы вставить данные в таблицу MySQL, вам необходимо использовать команду SQL INSERT INTO . Вы можете вставить данные в таблицу MySQL, используя приглашение mysql> или любой другой скрипт, например PHP.

Вот общий синтаксис SQL команды INSERT INTO для вставки данных в таблицу MySQL:

INSERT INTO table_name ( field1, field2,...fieldN )
   VALUES
   ( value1, value2,...valueN );

Чтобы вставить строковые типы данных, необходимо сохранить все значения в двойных или одинарных кавычках. Например “значение” .

Вставка данных из командной строки

Чтобы вставить данные из командной строки, мы будем использовать команду SQL INSERT INTO для вставки данных в таблицу MySQL tutorials_tbl.

Следующий пример создаст 3 записи в таблицу tutorials_tbl

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed

mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>

ПРИМЕЧАНИЕ. – Обратите внимание, что все знаки со стрелками (->) не являются частью команды SQL. Они указывают новую строку, и они автоматически создаются приглашением MySQL при нажатии клавиши ввода без точки с запятой в конце каждой строки команды.

В приведенном выше примере мы не предоставили tutorial_id, потому что во время создания таблицы мы указали опцию AUTO_INCREMENT для этого поля. Поэтому MySQL позаботится об автоматической вставке этих идентификаторов. Здесь NOW () – это функция MySQL, которая возвращает текущую дату и время.

Вставка данных с использованием PHP-скрипта

Вы можете использовать ту же команду SQL INSERT INTO в функции PHP mysql_query () для вставки данных в таблицу MySQL.

Этот пример получит три параметра от пользователя и вставит их в таблицу MySQL:

<html>

   <head>
      <title>Add New Record in MySQL Database</title>
   </head>

   <body>
      <?php
         if(isset($_POST['add'])) {
            $dbhost = 'localhost:3036';
            $dbuser = 'root';
            $dbpass = 'rootpassword';
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }

            if(! get_magic_quotes_gpc() ) {
               $tutorial_title = addslashes ($_POST['tutorial_title']);
               $tutorial_author = addslashes ($_POST['tutorial_author']);
            } else {
               $tutorial_title = $_POST['tutorial_title'];
               $tutorial_author = $_POST['tutorial_author'];
            }

            $submission_date = $_POST['submission_date'];
   
            $sql = "INSERT INTO tutorials_tbl ".
               "(tutorial_title,tutorial_author, submission_date) "."VALUES ".
               "('$tutorial_title','$tutorial_author','$submission_date')";
               mysql_select_db('TUTORIALS');
            $retval = mysql_query( $sql, $conn );
         
            if(! $retval ) {
               die('Could not enter data: ' . mysql_error());
            }
         
            echo "Entered data successfully\n";
            mysql_close($conn);
         } else {
      ?>
   
      <form method = "post" action = "<?php $_PHP_SELF ?>">
         <table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
            <tr>
               <td width = "250">Tutorial Title</td>
               <td>
                  <input name = "tutorial_title" type = "text" id = "tutorial_title">
               </td>
            </tr>
         
            <tr>
               <td width = "250">Tutorial Author</td>
               <td>
                  <input name = "tutorial_author" type = "text" id = "tutorial_author">
               </td>
            </tr>
         
            <tr>
               <td width = "250">Submission Date [   yyyy-mm-dd ]</td>
               <td>
                  <input name = "submission_date" type = "text" id = "submission_date">
               </td>
            </tr>
      
            <tr>
               <td width = "250"> </td>
               <td> </td>
            </tr>
         
            <tr>
               <td width = "250"> </td>
               <td>
                  <input name = "add" type = "submit" id = "add"  value = "Add Tutorial">
               </td>
            </tr>
         </table>
      </form>
   <?php
      }
   ?>
   </body>
</html>

При выполнении вставки данных лучше всего использовать функцию get_magic_quotes_gpc (), чтобы проверить, установлена ​​или нет текущая конфигурация для магической цитаты. Если эта функция возвращает false, используйте функцию addlashes () для добавления косой черты перед кавычками.

Вы можете использовать множество проверок для проверки правильности введенных данных и принятия соответствующих мер.

MySQL – выберите запрос

Команда SQL SELECT используется для извлечения данных из базы данных MySQL. Вы можете использовать эту команду в приглашении mysql>, а также в любом скрипте, таком как PHP.

Вот общий синтаксис SQL команды SELECT для извлечения данных из таблицы MySQL:

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Вы можете использовать одну или несколько таблиц, разделенных запятой, чтобы включить различные условия, используя предложение WHERE, но предложение WHERE является необязательной частью команды SELECT.

  • Вы можете выбрать одно или несколько полей в одной команде SELECT.

  • Вы можете указать звездочку (*) вместо полей. В этом случае SELECT вернет все поля.

  • Вы можете указать любое условие, используя предложение WHERE.

  • Вы можете указать смещение, используя OFFSET, откуда SELECT начнет возвращать записи. По умолчанию смещение начинается с нуля.

  • Вы можете ограничить количество возвратов, используя атрибут LIMIT .

Вы можете использовать одну или несколько таблиц, разделенных запятой, чтобы включить различные условия, используя предложение WHERE, но предложение WHERE является необязательной частью команды SELECT.

Вы можете выбрать одно или несколько полей в одной команде SELECT.

Вы можете указать звездочку (*) вместо полей. В этом случае SELECT вернет все поля.

Вы можете указать любое условие, используя предложение WHERE.

Вы можете указать смещение, используя OFFSET, откуда SELECT начнет возвращать записи. По умолчанию смещение начинается с нуля.

Вы можете ограничить количество возвратов, используя атрибут LIMIT .

Извлечение данных из командной строки

Это будет использовать команду SQL SELECT для извлечения данных из таблицы MySQL tutorials_tbl .

Следующий пример вернет все записи из таблицы tutorials_tbl

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl 
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-21      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-21      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)

mysql>

Извлечение данных с использованием PHP-скрипта

Вы можете использовать ту же команду SQL SELECT в функцию PHP mysql_query () . Эта функция используется для выполнения команды SQL, а затем другая функция PHP mysql_fetch_array () может использоваться для извлечения всех выбранных данных. Эта функция возвращает строку в виде ассоциативного массива, числового массива или обоих. Эта функция возвращает FALSE, если строк больше нет.

Следующая программа представляет собой простой пример, который покажет, как извлекать / отображать записи из таблицы tutorials_tbl .

Следующий блок кода отобразит все записи из таблицы tutorials_tbl.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Содержимое строк присваивается переменной $ row, а затем выводятся значения в этой строке.

ПРИМЕЧАНИЕ. – Не забывайте ставить фигурные скобки, когда хотите вставить значение массива непосредственно в строку.

В приведенном выше примере константа MYSQL_ASSOC используется в качестве второго аргумента функции PHP mysql_fetch_array () , поэтому она возвращает строку в виде ассоциативного массива. С ассоциативным массивом вы можете получить доступ к полю, используя их имя вместо индекса.

PHP предоставляет другую функцию mysql_fetch_assoc () , которая также возвращает строку в виде ассоциативного массива.

В следующем примере отображаются все записи из таблицы tutorial_tbl с использованием функции mysql_fetch_assoc ().

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_assoc($retval)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Вы также можете использовать константу MYSQL_NUM в качестве второго аргумента функции PHP mysql_fetch_array (). Это заставит функцию возвращать массив с числовым индексом.

Попробуйте следующий пример, чтобы отобразить все записи из таблицы tutorials_tbl, используя аргумент MYSQL_NUM.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Все три приведенных выше примера дадут одинаковый результат.

Хорошей практикой является освобождение памяти курсора в конце каждого оператора SELECT. Это можно сделать с помощью функции PHP mysql_free_result () . Следующая программа является примером, показывающим, как ее следует использовать.

Попробуйте следующий пример –

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
      FROM tutorials_tbl';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
   }
   mysql_free_result($retval);
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

При получении данных вы можете написать настолько сложный код, сколько захотите, но процедура останется такой же, как указано выше.

Оцените статью
Master Hi-technology
Добавить комментарий