Как подключиться к серверу MySQL через терминал и PHP

Как подключиться к MySQL серверу через терминал?

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

mysql -u root -h 255.12.233.5 -p

Если подключаемся к серверу, который запущен на текущем ПК (localhost), то ip адрес не указываем.

mysql -u root -p

После успешного подключения вы увидите строку приглашения для ввода запросов к серверу.

[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Чтобы отключиться от MySQL сервера просто введите команду exit в строке запроса.

mysql> exit
Bye

PHP модули для подключения к серверу MySQL (PDO и MySQLi)

PHP может работать с сервером MySQL используя модули:

  • MySQLi ("i" - improved)
  • PDO (PHP Data Objects)

Ранее в PHP применялась функция mysql_connect(), которая в PHP версии 5.5.0 была признана устаревшей и полностью упразднена в PHP версии 7.0.0.

Что использовать MySQLi или PDO? Это зависит от ваших предпочтений.

MySQLi и PDO обеспечивают современное, а главное безопасное соединение с базами данных и имеют защиту от SQL инъекций.

PDO поддерживает не только MySQL, а также еще несколько типов СУБД (CUBRID, MS SQL Server, Firebird, Informix,  ODBC, DB2, 4D, SQLite, PostgreSQL, Oracle). Причем если понадобится вы можете поменять тип СУБД в любой момент и вам не придется переписывать все запросы в приложении т.к. они продолжат спокойно работать с новой СУБД. PDO использует только объектно-ориентированный подход к работе с БД.

MySQLi работает только с MySQL и при смене СУБД придется переписывать весь код приложения и запросы. MySQLi использует как объектно-ориентированный подход, так и процедурный, что расширяет ее API.

Я же лично отдаю предпочтение PDO т.к. его основным отличием является, возможность ловить исключения. Так при ошибке в работе с БД будет создано исключение, в результате чего дальнейший код не будет выполнятся. Также знание PDO может пригодится при работе с другими СУБД.

Как проверить установлены ли PDO и MySQLi?

Проверить установку модулей PDO и MySQLi можно несколькими способами.

С помощью утилиты php-cli. Выполните следующую команду.

php -m | grep -i mysql

В результате вы можете увидеть следующие модули:

[root@centos7 ~]# php -m | grep -i mysql
mysqli
mysqlnd
pdo_mysql

Также информацию об этих модулях вы можете найти в результатах функции phpinfo().

Вы должны увидеть, что поддержка PDO и MySQLi включена (enabled).

Поддержка PDO в PHP
Поддержка PDO в PHP
Поддержка MySQLi в PHP
Поддержка MySQLi в PHP

Установка PDO и MySQLi для Linux

PDO и MySQLi в большинстве случаев идет в комплекте с PHP, однако если вы все же не обнаружили у себя этих модулей их можно установить следующим образом (для Centos 7).

sudo yum install php-pdo php-mysqlnd

Также рекомендую ознакомится с документацией:

Как подключиться к MySQL серверу с помощью PHP?

Для возможности обмена данными между PHP и MySQL необходимо установить соединение.

Подключение через MySQLi (объектно-ориентированный подход)

Подключение через MySQLi (процедурный подход)

Подключение через PDO