Показаны сообщения с ярлыком SQL. Показать все сообщения
Показаны сообщения с ярлыком SQL. Показать все сообщения

пятница, 20 марта 2020 г.

postgresql. python. выводим название всех таблиц в БД (базе данных)


Для работы с postgresql, нам понадобится модуль psycopg2. Установим его с помощью pip. 

Для этого перейдем в консоль и введем команду:
pip3 install psycopg2


далее импортируем модуль в коде нашей программы

 import psycopg2

затем создаем подключение к нашей БД, для этого используем метод connect

con = psycopg2.connect(

  database="имя вашей БД", 
  user="имя пользователя", 
  password="пароль пользователя", 
  host="ip адрес сервера", 
  port="номер порта сервера"

далее производим подключение к БД
cur = con.cursor() 

делаем запрос к БД и выводим наименование всех БД

cur.execute("SELECT * FROM pg_catalog.pg_tables")

запишем в массив результат поиска
  
rows = cur.fetchall()

сортируем по алфавиту список с наименованиями БД

rows.sort()

выводим в консоль наименование БД

for row in rows:  
   print("FIELD =", row[1])

закрываем соединение с БД

con.close()  







четверг, 19 марта 2020 г.

postgresql. python. выводим название всех БД (баз данных)




Для работы с postgresql, нам понадобится модуль psycopg2. Установим его с помощью pip. 


Для этого перейдем в консоль и введем команду:
pip3 install psycopg2




далее импортируем модуль в коде нашей программы


 import psycopg2


затем создаем подключение к нашей БД, для этого используем метод connect

con = psycopg2.connect(


  database="имя вашей БД", 
  user="имя пользователя", 
  password="пароль пользователя", 
  host="ip адрес сервера", 
  port="номер порта сервера"


далее производим подключение к БД
cur = con.cursor() 


делаем запрос к БД и выводим наименование всех БД


cur.execute("SELECT * FROM pg_catalog.pg_tables")


запишем в массив результат поиска
  
rows = cur.fetchall()


сортируем по алфавиту список с наименованиями БД


rows.sort()


выводим в консоль наименование БД


for row in rows:  
   print("FIELD =", row[1])


закрываем соединение с БД


con.close()  


среда, 27 февраля 2019 г.

Установка PostgreSQL на сервер Ubuntu 18.04


Пакет PostgreSQL загрузим из официального репозитория
Ubuntu с помощью стандартного менеджера пакетов.
Традиционно обновим индекс пакетов системы:

sudo apt update

Загрузим пакеты PostgreSQL и contrib
(он предоставляет дополнительные утилиты):
sudo apt install postgresql postgresql-contrib

Установка СУБД завершена.

суббота, 15 декабря 2018 г.

MySQL или MariaDB. Как сбросить пароль root


Как сбросить пароль root для MySQL
или MariaDB

Эта инструкция охватывает сброс пароля root как для более старых,
так и для новых версий MySQL и MariaDB.

Шаг 1 — Определяем версию системы управления
базой данных

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

mysql --version

Для MySQL вы увидите что-то вроде:

mysql Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using EditLine wrapper

Для MariaDB вывод будет примерно таким:

mysql Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

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

Шаг 2 — Остановка сервера базы данных

Для изменения пароля root вы должны заранее отключить сервер базы данных.
Для MySQL и MariaDB вы можете сделать это:

sudo systemctl stop mysql

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

Шаг 3 — Перезапуск сервера базы данных без проверки разрешений

Если вы запускаете MySQL и MariaDB без загрузки информации о привилегиях пользователя, она позволит вам без ввода пароля получить доступ к командной строке базы данных с привилегиями рута. Это позволит вам получить доступ к базе данных без знания парольной фразы.
Чтобы это сделать, вам нужно не дать базе данных загрузить таблицы привилегий, которые содержат информацию о привилегиях пользователя. Поскольку это несёт риск безопасности, вы также должны избежать сетевой активности, чтобы не допустить подключения других клиентов.
Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:

sudo mysqld_safe --skip-grant-tables --skip-networking &

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

mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Если вы видите ошибку

mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

То выполните следующие команды:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld


И запустите ещё раз:

sudo mysqld_safe --skip-grant-tables --skip-networking &


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

mysql -u root


Вы сразу же увидите приглашение оболочки базы данных.

Приглашение командной строки MySQL:

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

Приглашение командной строки MariaDB:

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.29-MariaDB-0ubuntu0.16.10.1 Ubuntu 16.10
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.

Шаг 4 — Смена пароля рута


Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее, эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены.
Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду 
FLUSH PRIVILEGES.

FLUSH PRIVILEGES;

Теперь действительно мы можем поменять пароль рута.
Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';

Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('новый_пароль');


Не забудьте поменять новый_пароль на выбранный вами новый пароль.

Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее, вместо этой вы можете попробовать UPDATE … SET для сброса root пароля.

UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';

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

Query OK, 0 rows affected (0,29 sec)


Выходим из сессии:

exit;

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

Шаг 5 — Обычный перезапуск сервера базы данных


Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Эта команда ищет PID или ID процесса для процесса MySQL или MariaDB и отправляет SIGTERM для сообщения процессу мягко выйти после завершения операций очистки.

Для MySQL и MariaDB используйте:

sudo kill `sudo cat /var/run/mysqld/mysqld.pid`


Затем перезапустите сервис используя systemctl.

sudo systemctl start mysql


Теперь вы можете подтвердить, что новый пароль работает, запустите:

mysql -u root -p


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