MysqlやPostgres のちょっとした対応 ※基本、Ubuntuです♬

mysql:導入する

(インストール)
$ sudo apt-get -y install mysql-client
(ログインする)
$ mysql -h 172.26.XXX.XXX -u dbuser -p

 

 

mysql:他のサーバーなどからの利用を許可する

$ mysql -u root -p
mysql> select user,host from mysql.user;
+---------------------+-----------------+
| user | host |
+---------------------+-----------------+
| root | 127.0.0.1 |
| root | ::1 |
| mypage | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| nextclouduser | localhost |
| root | localhost |
| roundcube | localhost |
| ‘nextclouduser’ | ’localhost’ |
+---------------------+-----------------+
9 rows in set (0.02 sec)

mysql> grant all privileges on *.* to dbuser@"172.26.XXX.XXX" identified by 'Password' with grant option;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> show grants for dbuser@172.26.XXX.XXX;
+---------------------------------------------------------------------------+
| Grants for dbuser@172.26.XXX.XXX |
+---------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'172.26.XXX.XXX' WITH GRANT OPTION |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

Postgres:導入する

(インストール) $sudo apt install postgresql postgresql-contrib

(ログイン) $sudo -u postgres psql

psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)) Type “help” for help.

postgres=#

(新規データベースの作成)

$ sudo -u postgres createdb opendata

(ログイン情報の確認)

postgres=# \conninfo
You are connected to database “postgres” as user “postgres” via socket in “/var/run/postgresql” at port “5432”.

(データベースの確認)

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
———–+———-+———-+———+———+———————–
opendata | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)

 

$ sudo -u postgres psql -f work_schema.sql opendata

$ sudo -u postgres psql -f work_data.sql opendata

バキュームとアナライズを実行する

$ sudo -u postgres vacuumdb -a -z

内容の確認

$ sudo -u postgres psql opendata
psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type “help” for help.

opendata=# \d
List of relations
Schema | Name | Type | Owner
——–+——————+———-+———-
public | giinmeibo | table | postgres
public | giinmeibo_id | sequence | postgres
public | kaigikekka | table | postgres
public | kaigikekka_id | sequence | postgres
public | kaigikekka_kaiha | table | postgres
public | kaihakoufu | table | postgres
public | kaihakoufu_id | sequence | postgres
(7 rows)

外部からデータベースへ接続するためのアクセス制御設定

(新規ロールの作成)

$ sudo -u postgres createuser –interactive

Enter name of role to add: dbuser

Shall the new role be a superuser? (y/n) y

(パスワードの設定)

$ sudo -u postgres psql
postgres=# SELECT * FROM pg_shadow;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
———-+———-+————-+———-+———+————–+——–+———-+———–
postgres | 10 | t | t | t | t | | |
dbuser | 16384 | t | t | f | f | | |
(2 rows)

postgres=# ALTER ROLE dbuser PASSWORD ‘password’;
ALTER ROLE

設定ファイルの変更

$ cd /etc/postgresql/12/main/

$ sudo vi postgresql.conf

listen_addresses = ‘*’

$ sudo vi pg_hba.conf

(以下を追記)
# [ADDRESS] には接続を許可するネットワークを指定
# # 全て許可する場合は [0.0.0.0/0]
# # [DATABASE], [USER] 列で接続許可するデータベースやユーザーも限定可
host opendata dbuser 172.16.0.0/12 md5

$ sudo systemctl restart postgresql

タイトルとURLをコピーしました