このブログについて
このブログは、爺による「備忘録」です。
言葉の使い方をはじめ、間違っていることも多々あるかもしれません。
あくまでも「備忘録」ですので、これのブログを見て「怒っちゃやーよ!」
このブログは、爺による「備忘録」です。
言葉の使い方をはじめ、間違っていることも多々あるかもしれません。
あくまでも「備忘録」ですので、これのブログを見て「怒っちゃやーよ!」
SourceForge:phpPgAdmin ダウンロードページ より、DL。
2019-11-23 現在
phppgadmin-REL_5-6-0.zip
解凍して出てきた
を ppa とリネームして、CakePHP4 の webroot ディレクトリ直下へ配置。
/webroot/ppa/*
を
とリネーム。
- $conf['servers'][0]['host'] = '';
+ $conf['servers'][0]['host'] = 'localhost';
$conf['servers'][0]['host'] = '192.168.xxx.xxx'; <- IP 直打ちも可
- $conf['servers'][0]['defaultdb'] = 'template1';
+ $conf['servers'][0]['defaultdb'] = 'hoge';
- $conf['default_lang'] = 'auto';
+ $conf['default_lang'] = 'japanese';
phpPgAdmin では、pgsql, postgres, root, administrator というユーザ名でのログインは
制限されているとのこと。
今回はローカル環境でのテストインストールなので
これを解除してみる。
- $conf['extra_login_security'] = true;
+ $conf['extra_login_security'] = false;
Qiita:ローカル環境PostgreSQL + phpPgAdmin でデフォルトユーザーでログインできないときの対処(2016-12-24)
ppa トップページでテーマを選択することができる。
とりあえず
の4種から選べる。
これらが
こちらにある
に対応している。
今回は、Cappuccino にしてみた。
.topbar, .trail {
color: #fff;
background-color: #363330;
margin: 0;
padding: 0;
text-align: left;
}
Chrome で見ているけど、キャッシュがきつく、
スーパーリロードも効かない。
一晩寝かせたら、やっと反映された。
設定を終えて、ppa へアクセスしてみたら、下記エラーが出た。
PHP の PostgreSQL ドライバを追加インストール。
yum install -y --enablerepo=remi --enablerepo=remi-php74 php-pgsql
__snip__
インストール:
php-pgsql.x86_64 0:7.4.0~RC6-15.el7.remi
完了しました!
Apache を再起動して、無事 phpPgAdmin が表示された。
systemctl restart httpd
現状は、パスワードなしのログイン方法しかわかっていない。
それでも、事前 設定 が必要。
PostgreSQL のドライバをインストールしようとしたら
こんな感じになった。
yum install -y php-pgsql
__snip__
updates | 2.9 kB 00:00
(1/3): epel/x86_64/updateinfo | 1.0 MB 00:01
(2/3): remi-safe/primary_db | 1.6 MB 00:04
(3/3): epel/x86_64/primary_db | 6.9 MB 00:11
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-pgsql.x86_64 0:5.4.16-46.1.el7_7 を インストール
--> 依存性の処理をしています: php-pdo(x86-64) = 5.4.16-46.1.el7_7 のパッケージ: php-pgsql-5.4.16-46.1.el7_7.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ: php-pgsql-5.4.16-46.1.el7_7.x86_64 (updates)
要求: php-pdo(x86-64) = 5.4.16-46.1.el7_7
インストール: php-pdo-7.4.0~RC6-15.el7.remi.x86_64 (@remi-php74)
php-pdo(x86-64) = 7.4.0~RC6-15.el7.remi
利用可能: php-pdo-5.4.16-46.el7.x86_64 (base)
php-pdo(x86-64) = 5.4.16-46.el7
利用可能: php-pdo-5.4.16-46.1.el7_7.x86_64 (updates)
php-pdo(x86-64) = 5.4.16-46.1.el7_7
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest
そこで、php アップデート のときのコマンドを参考に
前述のようにしたら、無事にドライバをインストールできた。
ユーザ名を、postgres。
パスワードは、なし、ALTER ROLE で再設定後の両方を試したけど
ログインできない。
ドキュメント を見てみたら
Support for PostgreSQL 8.4.x, 9.x, 10.x, 11.x
あ、れ?
もしかして、12.1 だから?
多分そういう問題ではないよね。。。
設定 をしたら、パスワードなしならログインできるようになった。
テーブルを結合して一括削除を行う場合。
DELETE の後に、テーブルエイリアスを書く必要があるとのこと。
DELETE
h <- これがミソ
FROM
`hoges` AS h
LEFT JOIN `moges` AS m
ON m.`hoge_id` = h.`id`
WHERE
h.`id` = 5
知らなかった。。。
確かに、ミソのところがないと、構文エラーとなる。
これがエイリアスでなくて、テーブル名の直書きだったらどうなのかとか
未調査。
Qiita:mysqlでjoinした結果をdelete(2015-01-27)
su - postgres
最終ログイン: 2019/11/17 (日) 19:40:30 JST日時 pts/0
全てはここから。
psql
psql (12.1)
"help"でヘルプを表示します。
で、下記のような、SQL 文入力待機状態になる。
\q
exit も有効。
psql --version
psql (PostgreSQL) 12.1
SELECT version();
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 12.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
\du
ロール一覧
ロール名 | 属性 | 所属グループ
----------+--------------------------------------------------------------------------+--------------
postgres | スーパユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
ppsql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
\l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
SHOW all;
SHOW [設定名];
psql --help
\?
\h
利用可能なヘルプ:
ABORT ALTER PROCEDURE ALTER VIEW CREATE FOREIGN TABLE CREATE TABLESPACE DROP DATABASE DROP SCHEMA GRANT SELECT
ALTER AGGREGATE ALTER PUBLICATION ANALYZE CREATE FUNCTION CREATE TEXT SEARCH CONFIGURATION DROP DOMAIN DROP SEQUENCE IMPORT FOREIGN SCHEMA SELECT INTO
ALTER COLLATION ALTER ROLE BEGIN CREATE GROUP CREATE TEXT SEARCH DICTIONARY DROP EVENT TRIGGER DROP SERVER INSERT SET
ALTER CONVERSION ALTER ROUTINE CALL CREATE INDEX CREATE TEXT SEARCH PARSER DROP EXTENSION DROP STATISTICS LISTEN SET CONSTRAINTS
ALTER DATABASE ALTER RULE CHECKPOINT CREATE LANGUAGE CREATE TEXT SEARCH TEMPLATE DROP FOREIGN DATA WRAPPER DROP SUBSCRIPTION LOAD SET ROLE
ALTER DEFAULT PRIVILEGES ALTER SCHEMA CLOSE CREATE MATERIALIZED VIEW CREATE TRANSFORM DROP FOREIGN TABLE DROP TABLE LOCK SET SESSION AUTHORIZATION
ALTER DOMAIN ALTER SEQUENCE CLUSTER CREATE OPERATOR CREATE TRIGGER DROP FUNCTION DROP TABLESPACE MOVE SET TRANSACTION
ALTER EVENT TRIGGER ALTER SERVER COMMENT CREATE OPERATOR CLASS CREATE TYPE DROP GROUP DROP TEXT SEARCH CONFIGURATION NOTIFY SHOW
ALTER EXTENSION ALTER STATISTICS COMMIT CREATE OPERATOR FAMILY CREATE USER DROP INDEX DROP TEXT SEARCH DICTIONARY PREPARE START TRANSACTION
ALTER FOREIGN DATA WRAPPER ALTER SUBSCRIPTION COMMIT PREPARED CREATE POLICY CREATE USER MAPPING DROP LANGUAGE DROP TEXT SEARCH PARSER PREPARE TRANSACTION TABLE
ALTER FOREIGN TABLE ALTER SYSTEM COPY CREATE PROCEDURE CREATE VIEW DROP MATERIALIZED VIEW DROP TEXT SEARCH TEMPLATE REASSIGN OWNED TRUNCATE
ALTER FUNCTION ALTER TABLE CREATE ACCESS METHOD CREATE PUBLICATION DEALLOCATE DROP OPERATOR DROP TRANSFORM REFRESH MATERIALIZED VIEW UNLISTEN
ALTER GROUP ALTER TABLESPACE CREATE AGGREGATE CREATE ROLE DECLARE DROP OPERATOR CLASS DROP TRIGGER REINDEX UPDATE
ALTER INDEX ALTER TEXT SEARCH CONFIGURATION CREATE CAST CREATE RULE DELETE DROP OPERATOR FAMILY DROP TYPE RELEASE SAVEPOINT VACUUM
ALTER LANGUAGE ALTER TEXT SEARCH DICTIONARY CREATE COLLATION CREATE SCHEMA DISCARD DROP OWNED DROP USER RESET VALUES
ALTER LARGE OBJECT ALTER TEXT SEARCH PARSER CREATE CONVERSION CREATE SEQUENCE DO DROP POLICY DROP USER MAPPING REVOKE WITH
ALTER MATERIALIZED VIEW ALTER TEXT SEARCH TEMPLATE CREATE DATABASE CREATE SERVER DROP ACCESS METHOD DROP PROCEDURE DROP VIEW ROLLBACK
ALTER OPERATOR ALTER TRIGGER CREATE DOMAIN CREATE STATISTICS DROP AGGREGATE DROP PUBLICATION END ROLLBACK PREPARED
ALTER OPERATOR CLASS ALTER TYPE CREATE EVENT TRIGGER CREATE SUBSCRIPTION DROP CAST DROP ROLE EXECUTE ROLLBACK TO SAVEPOINT
ALTER OPERATOR FAMILY ALTER USER CREATE EXTENSION CREATE TABLE DROP COLLATION DROP ROUTINE EXPLAIN SAVEPOINT
ALTER POLICY ALTER USER MAPPING CREATE FOREIGN DATA WRAPPER CREATE TABLE AS DROP CONVERSION DROP RULE FETCH SECURITY LABEL
\h [SQL コマンド名] <- 詳細を見る
真面目に書くと、ログインできない。。。
psql -h localhost -p 5432 -U postgres
psql: エラー: サーバに接続できませんでした: FATAL: Ident authentication failed for user "postgres"
公式:構成設定
こちらは、アプリケーション設定のファイル。
CakePHP4 では、
が追加されている。
そして、.gitignore の記述が、CakePHP3 と比べて
- /config/app.php
+ /config/app_local.php
のように変更されている。
環境に依存しない設定を
環境に依存する設定を
へ、記述するルールみたい。
も追加されていた。
'Datasources' => [
'default' => [
'host' => 'localhost',
/*
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
/**
* If not using the default 'public' schema with the PostgreSQL driver
* set it here.
*/
//'schema' => 'myapp',
/**
* You can use a DSN string to set the entire configuration
*/
'url' => env('DATABASE_URL', null),
],
/*
* The test connection is used during the test suite.
*/
'test' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'test_myapp',
//'schema' => 'myapp',
],
],
本体とテストそれぞれの、
データベースホスト、ユーザ名、パスワード、データベース名を設定。
今回は、CakePHP4 デフォルトの MySQL ではなく
PostgreSQL を利用するので
'driver' => 'Cake\Database\Driver\Postgres',
こちらも、本体とテストのそれぞれに追記。
が追加されていた。
// if (!env('APP_NAME') && file_exists(CONFIG . '.env')) {
// $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']);
// $dotenv->parse()
// ->putenv()
// ->toEnv()
// ->toServer();
// }
このコメントアウトを復帰。
こちらに基づいて、
を作成。
export APP_NAME="__APP_NAME__"
export DEBUG="true"
export APP_ENCODING="UTF-8"
export APP_DEFAULT_LOCALE="en_US"
export APP_DEFAULT_TIMEZONE="UTC"
export SECURITY_SALT="__SALT__"
公式:インストール
公式には
と書かれているけど
まだドキュメントを更新し始めたばかりみたいなので
変わる可能性があるかも?
まだ正式リリースを迎えていないので
おまけ付きでインストール。
composer create-project --prefer-dist cakephp/app:4.x-dev /media/sf_CakeTest
スクリプトエディタのツールボタン [関数を選択]-[(対象の関数名)] [(再生ボタン)] または Ctrl + R
ただし、ドキュメントでは、文章中にボタンが配置されてしまうので
うまく扱えなかった。
function onOpen() {
var ui = DocumentApp.getUi();
var menu = ui.createMenu('スクリプトメニュー');
menu.addItem('リスト変換', 'main');
menu.addToUi();
}
onOpen メソッドで、当該ドライブファイルを開いたときのイベントハンドラとして
リスト追加スクリプトを記述する。
iwb.jp:Googleスプレッドシート Apps Scriptの3つのプログラム実行方法(2018-01-22)
MVC 3 から、標準で導入されたらしい。
Microsoft:ASP.NET Core の Razor 構文リファレンス
インライン式。
「コードナゲット」とも呼ばれるみたい。
複数行に渡る場合以外は、閉じる必要がない。
全て使える。
Razor の根幹となる @ を文字列として表記したい場合は
例によって @@ と、重ねて記述する。
複数行に渡る処理を書きたい場合は、@{} で記述する。
コードブロック内に出力内容を記述することも可能。
if などの構文を記述する際は、コードブロック拡張版を利用する。
if などの構文を記述する際は、コードブロック拡張版を利用する。
javascript へ値を渡すときは
‘(シングルクォーテーション)
“(ダブルクォーテーション)
いずれかで囲む必要があるらしい。
vaguely:【ASP.NET Core】Razorで遊んでみる(2018-11-08)
GitHub:nkjmlab/nkjmlab-utils-jpdatum
あちこちの記事で、ドライバの入手先として
公式:MySQL Community Downloads Connector/J
を挙げていたけど、どうやって DL してよいのかわからなかった。
同ページに、Recommended Windows Download: と書いてあるから
MySQL インストールディレクトリに同梱されているのかと思ったけど
エクスプローラで、mysql-connector-java で検索してみたものの、ヒットせず。
仕方がないので
Maven Repository:MySQL Connector/J 8.0.18
こちらの、Files:jar (2.2MB) から DL した。
2019-11-05 現在
mysql-connector-java-8.0.18.jar
として配置。
ビルド・パス の設定。
数多くサンプルがある中、下記が見やすかったので
不要な部分を削除して、そのままいただきました。
TASK NOTES:JavaでMySQLに接続してデータ操作をする(2015-04-14)
import java.sql.*;
public class MySQLConnector {
public static void main(String[] args) {
Connection con = null;
try {
// MySQLに接続
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
System.out.println("MySQLに接続できました。");
} catch (SQLException e) {
System.out.println("MySQLに接続できませんでした。");
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println("MySQLのクローズに失敗しました。");
}
}
}
}
}
Statement stm = con.createStatement();
String sql = "select * from programing";
ResultSet rs = stm.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("取得結果 -> " + id + ":" + name);
}
Statement stm = con.createStatement();
String sql = "insert into programing values(4, 'Python'), (5, 'Go')";
int result = stm.executeUpdate(sql);
System.out.println("更新件数は" + result + "です。");
TASK NOTES:JavaでMySQLに接続してデータ操作をする(2015-04-14)
→とても見やすく、コードは、ほぼそのまま真似させていただきました。
公式:MySQL Community Downloads
から DL。
2019-11-05 現在
mysql-installer-community-8.0.18.0.msi
(Web 版は避けた)
Windows (x86, 32-bit), MSI Installer と書かれていたけど
公式:MySQL Community Downloads
こちらでは、Windows (x86, 32 & 64-bit), MSI Installer と書かれているので、
64bit もこれでよさそう。
また、DL しようとすると、Oracle アカウントについて聞かれるけど
[No thnaks, just start my download.] というリンクから、アカウントなしで DL できる。
大概のアプリが、インストールウィザード内で
インストール先の選択があるけれど
MySQL には、それがなかったので、ちょっと焦った。
インストール先は、こちら。
Shell
MySQLWorkbench
コマンドプロンプトを開く。
コマンドプロンプトを管理者権限で実行。
// 開始
net start mywql8018
// 終了
net stop mywql8018
mysql -u root -p
Enter password: **********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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.
こちらをバックアップを取ってから、下記に従って追記。
my.cnf 8.0.x
DBOnline:MySQL Community Server 8.0.15のインストール
ProEngineer:MySQLのダウンロード&インストールと初期設定方法(2019-09-27)
コンストラクタをクラス名と同じにしたら
エラーになって焦った。
ComboBox へ DataSource を設定していたら、下記エラーメッセージと遭遇した。
Visual Studio からは、「例外がスローされました」というメッセージを受け取ったけど
Exception の種類は不明。
try .. catch で、Exception を拾おうとしても、拾えない。
コンボボックスの選択肢が、ユーザの操作状況によって変化するので
その度に、ComboBox.DataSource を設定し直す、というもの。
ComboBox1.DataSource = Items; // ここで例外
ComboBox1.DisplayMember = "ItemDisp";
ComboBox1.ValueMember = "ItemValue";
同じコードで DataSource を変更している
他の ComboBox ではこれで問題ないのに、ここだけ上記エラーとなる。
原因は、上記なんだろうけど、
どうしていいかわからないので
デバッグ最中に出てくる
画面右下のペイン [例外設定] にて
[Managed Debugging Assistants]-[NonComVisibleBaseClass] のチェックを外した。