php mysql show databases
How to get a list of databases?
I was wondering if there’s a way in PHP to list all available databases by usage of mysqli. The following works smooth in MySQL (see php docs):
Into something like:
If this is not working, would it be possible to convert a created mysqli connection into a regular mysql and continue fetching/querying on the new converted connection?
4 Answers 4
It doesn’t appear as though there’s a function available to do this, but you can execute a show databases; query and the rows returned will be the databases available.
I realize this is an old thread but, searching the ‘net still doesn’t seem to help. Here’s my solution;
Similar to Rick’s answer, but this is the way to do it if you prefer to use mysqli in object-orientated fashion:
Here is a complete and extended solution for the answer, there are some databases that you do not need to read because those databases are system databases and we do not want them to appear on our result set, these system databases differ by the setup you have in your SQL so this solution will help in any kind of situations.
first you have to make database connection in OOP
Как показать список всех баз данных в MySQL
При администрировании серверов баз данных MySQL одна из наиболее распространенных задач, которые вам нужно будет выполнить, — это познакомиться со средой. Сюда входят такие задачи, как перечисление баз данных, находящихся на сервере, отображение таблиц конкретной базы данных или получение информации об учетных записях пользователей и их привилегиях.
В этом руководстве объясняется, как отобразить все базы данных на сервере MySQL или MariaDB через командную строку.
Показать базы данных MySQL
Получите доступ к серверу MySQL с помощью следующей команды и при появлении запроса введите пароль пользователя MySQL:
Из оболочки MySQL выполните следующую команду:
Еще одна команда, которую вы можете использовать для SHOW SCHEMAS списка баз данных, — это SHOW SCHEMAS которая является синонимом команды SHOW DATABASES :
Вывод будет таким же, как при использовании команды SHOW DATABASES :
Показать все базы данных MySQL
Войдите в систему как root-пользователь MySQL:
Запустите команду SHOW DATABASES :
Вы увидите список всех баз данных на сервере MySQL:
Фильтрация результата
Предложение LIKE можно использовать для фильтрации вывода команды SHOW DATABASES соответствии с определенным шаблоном.
Например, следующий оператор вернет все базы данных, имена которых начинаются с ‘open’:
Если вы хотите выполнить более сложный поиск, вы запрашиваете таблицу schemata из базы данных information_schema которая содержит информацию обо всех базах данных.
Следующая инструкция предоставит вам список всех баз данных, которые начинаются с «open» или «word»:
Показать базы данных MySQL из командной строки
Это особенно полезно, когда вы хотите работать со своими базами данных MySQL с помощью сценариев оболочки.
Выполните следующую команду на своем терминале, чтобы отобразить список всех баз данных:
Вот пример использования команды mysqlshow :
Вывод будет идентичен выводу предыдущей команды.
Выводы
Вы узнали, как получить список всех баз данных на вашем сервере MySQL.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
mysql_list_dbs
mysql_list_dbs — List databases available on a MySQL server
This function was deprecated in PHP 5.4.0, and it and the entire original MySQL extension was removed in PHP 7.0.0. Instead, use either the actively developed MySQLi or PDO_MySQL extensions. See also the MySQL: choosing an API guide. Alternatives to this function include:
Description
Returns a result pointer containing the databases available from the current mysql daemon.
Parameters
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() had been called with no arguments. If no connection is found or established, an E_WARNING level error is generated.
Return Values
Examples
Example #1 mysql_list_dbs() example
The above example will output something similar to:
Notes
For backward compatibility, the following deprecated alias may be used: mysql_listdbs()
See Also
User Contributed Notes 4 notes
There is no direct equivalent of mysql_list_dbs() as a mysqli_list_dbs() command, but you can query «show databases» instead.
$db_list = mysql_list_dbs($connect); //mysql
Is equivalent to this:
$db_list = mysqli_query($connect, «SHOW DATABASES»); //mysqli
The example is wrong in Spanish version.
ERROR: mysql_fetch_assoc() expects parameter 1 to be resource, null given in XXX on line 5
while ($fila = mysql_fetch_assoc($res)) <
OK.
while ($fila = mysql_fetch_assoc($resultado)) <
Команды MySQL
Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE.
Рассмотрим каждую из них отдельно.
Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:
Если, например, существуют две базы данных — mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:
Для просмотра списка таблиц используется эта же команда в таком виде:
Эта команда выдаст список таблиц в текущей базе данных:
Замечание: вы можете работать только с одной базой данных в одно и то же время, поэтому в приведенном выше примере нет нужды указывать название базы данных, список таблиц которой стоит вывести, поскольку производится поиск в активной на данный момент базе.
CREATE
Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных — mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:
После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:
Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:
Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически — для ее использования необходимо сделать это самостоятельно.
Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL.
Наипростейшей командой является следующая:
Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.
Замечание: На SQL-команды распространяется одно ограничение, которое не имеет отношения к командам MySQL — инструкции SQL обязательно должны заканчиваться точкой с запятой. Это позволяет вводит многострочные запросы к бызе данных, что не требуется для MySQL-команд, которые как правило лаконичные и короткие.
Как вы уже наверное поняли, команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:
В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа «*» (), который говорит, что следует показать все поля таблицы.
Часть WHERE … является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY … служит для сортировки полученных данных по определенным полям.
Вот пример более сложного запроса, демонстрирующий сказанное выше. Допустим таблица staff содержит информацию о сотрудниках некоторой организации. Этот запрос находит записи о тех из них, кто работает больше двух лет и кого не зовут Иваном.
Рассмотрим этот запрос
Первая строка велит MySQL показать содержимое только полей name, project и works_since. Вторая строка указывает на таблицу, в которой следует искать эти данные. Оставшаяся часть запроса указывает критерии выбора — имя не должно быть ‘Иван’, а дата быть более ранней, чем 26-е апреля 1998-го года. Вот пример вывода после такой операции:
Для показа данных одного поля может использоваться такой запрос:
Как видите, этот запрос просто выбирает значения из нужного поля из каждой строки и выводит их, заодно сортируя по (единственному) полю project, поэтому в результатах встречаются повторения. Для устранения их используется инструкция DISTINCT:
SQL позволяет производить некоторые вычисления и получать некоторую описательную информацию при помощи агрегатных функций. Среди этих функций — COUNT, SUM, MAX, MIN и AVG:
Используются эти функции как элементы списка таблиц в запросе с аргументом — названием поля. Вот несколько примеров.
Эти запросы находят количество выполняемых проектов, наибольшее количество проектов, выполняемое одним человеком и среднее количество проектов, в которых участвуют работники соответственно.
SQL также располагает средствами работы с регулярными выражениями (работе с которыми в Perl вы можете ознакомиться, прочтя соответствующую статью на нашем сайте).
Для сравнения значения с регулярным выражением используется оператор LIKE, а для конструирования простеших выражений — символы ‘_’ (произвольный символ) и ‘%’ (произвольное количество произвольных символов). Пример. Этот запрос находит все имена, которые начинаются с ‘Jo’:
MySQL также позволяет производить более развитое сравнение с шаблоном при помощи оператора REGEXP и средств построения шаблона теми же методами, что используются в Perl (см. Регулярные выражения в Perl).
Этот запрос выведет все строки, в которых название проекта содержит букву ‘b’ вне зависимости от регистра.
И последнее по порядку, но не по значению — использование более чем одной таблицы. Особенность заключается в том, что используемые таблицы могут иметь общие поля, которыми они связаны.
Для того, чтобы точно указывать, о поле какой таблицы идет речь, используется запись типа staff.project, где перед точкой стоит название таблицы, а после нее — название поля. Второй вариант — назначения псевдонимов (алиасов) таблицам для большего удобства. Для этого в списке таблиц название каждой таблицы указывается вместе с псевдонимом — например stuff x, projects y.
В этом примере объединяются таблицы staff и projects, причем выводятся имя сотрудника, проект над которым он работает и описание этого проекта.
Объединив все это в один запрос получим следующее:
Редактирование данных
Редактирование данных — это добавление, удаление и изменение их. Для выполнения этих операций используются команды INSERT, DELETE и UPDATE соответственно.
Команда INSERT служит для вставки строк в таблицы. Вот как может выглядеть такой запрос:
Возможна также вставка отдельных значений. В таком случае необходимо указать, в какие поля стоит вставлять данные, причем оставшиеся поля будут незаполнены — при выполнении запросов SELECT они будут представлены как NULL — специальное начение, означающее, что данное отсутствует.
Удаление данных производится командой DELETE. Для этого нужно указать таблицу и (необязательно) условия, которым должны удовлетворять строки, которые следует удалить. Если условия опущены, эта команда, как и SELECT, проделает эту операцию надо всеми строками — то есть очистит таблицу.
Изменение данных производится при помощи команды UPDATE. Необходимо указать, значения каких полей следует изменить, а также (опять же необязательно) условия, которым должны удовлетворять строки, которые следует обновить.
Этот запрос устанавливает дату принятия на работу, зарплату и название проекта всем Джекам, которые находятся в базе данных.
Это небольшая часть языка SQL, необходимая для работы с MySQL, в частности при программировании для Web. Для более полной информации обратитесь к официальным спецификациям SQL или к документации MySQL.
Примечание для тех, кто знаком со стандартом ANSI SQL 92: на данный момент MySQL поддерживает укороченную версию этого стандарта, в которую не входит выполнения подзапросов а также некоторые другие функции.
Полезные команды MySQL
Посмотреть список таблиц и их структуру в MySQL
select id from time where minutes not like ‘0’ limit=5;
Список настроечных параметров и их значения
Список прав у пользователя [email protected]
Создание нового пользователя
Добавим выбранные привилегии для всех таблиц БД dbname пользователю ‘user’@’localhost’
Добавим все привилегии для всех таблиц БД dbname пользователю ‘user’@’localhost’
Удаление прав пользователя ‘user’@’localhost’ для БД dbname:
Новый пароль для root
Управление базой данных
Создание базы данных
Создание базы данных из консоли
Удаления базы данных из консоли
Adminer — удобная замена phpMyAdmin, всего один php-файл.
Замена в поле определенной подстроки на другую
Вставка данных из одной таблицы в другую
Просмотр структуры таблицы blog_posts
Просмотр sql-запроса на создание структуры таблицы blog_posts
Мониторинг и статистика
Список всех баз данных
Список всех таблиц в выбранной базе данных
Статистика по работе сервера
Оптимизация баз данных
При помощи команды mysqlcheck можно выполнять проверку, оптимизацию и исправление ошибок.
Поверка на ошибки БД dbname
Восстановление и оптимизация всех БД
-p – использовать пароль
-A – проверять все базы данных
-r – ремонтировать БД
-o – оптимизировать БД
Скрипт простой оптимизации БД, можно добавить в крон для выполнение раз в сутки
Установим mysqltuner, который показывает статистику по работающему mysql-серверу и дает полезные советы по оптимизации.
При запуске скрипт спросит логин и пароль для root’a. После корректной авторизации будет выведена статистика и разные советы по правке конфигурационного файла MySQL.
Изменение строки приглашения (prompt)
Эти настройки были найдены на просторах инета, но автора, к сожалению, не помню. Делают эти настройки следующие
Дамп (резервная копия)
Дамп выбранных баз
Дамп только структуры, без данных
—add-drop-table — добавляет команду DROP TABLE перед каждой командой CREATE TABLE
—add-locks — добавляет команду LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы
—skip-comments — не выводить комментарии.
—compact — использовать компактный формат
—create-options — добавляет дополнительную информацию о таблице в команду CREATE TABLE : тип, значение AUTO_INCREMENT и т.д. Не нужные опции можно вырезать с помощью sed.
—tables — дампить только таблицы из списка, следующего за этим параметром, разделитель — пробел
Начиная с версии 5.5.30 при дампе возможно получить следующие сообщение
Для исправления этого надо обновить базы и перезапустить MySQL
Изменение кодировка для текстового поля
Список полей для таблицы table с информацией о поле, в том числе и кодировка поля
Меняем charset для поля field
Изменение кодировка при импорте с дампа
Определение кодировки файла
Конвертирование из кодировки latin1 в utf8
Иногда при компиляция MySQL-python может выскочить такая ошибка configure: error: mysql_config executable not found, это значит, что не установлен пакет libmysqlclient15-dev. Под Ubuntu устанавливается так
Перенос директории с данным (data directory)
Копируем существующею директорию с данными в новое место
Укажем в my.cnf путь к новой директории, секция mysqld
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.