WindowsではPostgreSQLが使えるようになったので、Ubuntuでもやってみることにしました。
インストール
公式ページにはデフォルトで入っていると書かれているのですが、16.04LTSで入っていませんでした。version10は見つからず、9.5を下記コマンド
sudo apt-get install postgresql
でインストールします。1分くらいで完了。 $ cd /usr/lib
を見ると、postgresqlというディレクトリができていて、インストールが確認できます。
データベースを作る
$ sudo su postgres
とやってユーザをpostgresに切り替えます。データベース(ここではmydatabaseという名前)を作って、消すには
$ createdb mydatabase
$ dropdb mydatabase
とします。postgresql起動
その後は、su (元のユーザ) として戻って
$ sudo -u postgres psql
で起動できます(postgresのままならpsqlだけで起動)。(※終了は \q )
$ sudo -u postgres psql
psql (9.5.13)
Type "help" for help.
postgres=#
ここで\list または \l と打つと、データベースのリストが見れます。
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
my_database | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgresを使うときはサーバが動いている必要があります
$ sudo systemctl status postgresql
とやって確認できます。動いていればこんな感じに出ます。 ● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled
Active: active (exited) since
statusのところをstopにすると停止。startで起動できます。参考。パスワード設定
Windowsのときはインストール時にパスワードの設定がありましたが、ubuntuではありませんでした。
$ sudo -u postgres psql
\password postgres
(enter password)
\q
とやってパスワードを設定します。ここからPythonです。
psycopg2をインストール
$ conda install psycopg2
psycopg2接続
wikiのこのページを参考にして接続します。
#!/usr/bin/python
import psycopg2
import sys
def main():
#Define our connection string
conn_string = "host='localhost' dbname='my_database' user='postgres' password='secret'"
# print the connection string we will use to connect
print ("Connecting to database\n ->%s" % (conn_string))
# get a connection, if a connect cannot be made an exception will be raised here
conn = psycopg2.connect(conn_string)
# conn.cursor will return a cursor object, you can use this cursor to perform queries
cursor = conn.cursor()
print ("Connected!\n")
if __name__ == "__main__":
main()
出力が
Connected!
続きPythonでPostgreSQL(テーブル作成〜)
参考:
リスト
https://chartio.com/resources/tutorials/how-to-list-databases-and-tables-in-postgresql-using-psql/
パスワード
http://suite.opengeo.org/docs/latest/dataadmin/pgGettingStarted/firstconnect.html