2020/06/07

MySQL Workbench から、SSH接続しようとすると”Access denied for 'none'. Authentication that can continue: publickey”エラーになる

  • Issue
    MySQL Workbench から、SSH接続しようとすると”Access denied for 'none'. Authentication that can continue: publickey”と言われる。。。
  • 原因
    SSHのKeyをmacで作成したために、Keyの形式が問題らしい。
    (参考)Thanks a lot!!
    WorkBenchでDBサーバーにSSH接続できないって?

  • Solution
    Windowsが、手元になかったので、macでのやり方をメモ
    1. putty をインストール
    2. puttygem で、.ppk ファイルを作成
    3. puttygem で、オプションprivate-openssh を指定して作成
    4. そのKeyをセットアップすると接続!



  • 編集後記
    MacでMySQL Workbenchを使う人は、少ないのかな?調べるのに時間かかってしまった。

GCP: ローカルからGCLOUDコマンドを叩くと pyenv: python2: command not found エラー

  • Issue
    gcloud コマンドをローカルから使おうとしたら、pyenv: python2: command not found エラーとなる
  • 環境など
    Mac mojave 10.14.6
    pyenv 1.2.8-182  ※homebrew でインストールしていない。(これが原因かも)
  • 原因
    文字通りなのですが、gcloudの中で、"python2" コマンドが呼び出されるけど、python2 コマンドが見つからないと言われている。


  • Solution
    .zprofile に、export CLOUDSDK_PYTHON=/usr/bin/python を追記
    これを追記することで、呼び出すPython環境を明示できて、python2 を呼ばなくなる。
    (しらんけど。。。)


  • 編集後記
    これは、元々、エラーがでるけど普通に動く。多分、python2 コマンド使って、だめならpython コマンドって順番に呼び出しているのかと想像。
    前のMACだと出なかったんだけど。。。

2020/06/06

GCP: Google Compute Engine にVSCODD 越しに接続する

  • Goal
    • VSCODEから、GCEインスタンス(開発環境)に接続開発する
    • そのとき、一応SSHのポートも変更する
  • How
    1. gcloud SDK のインストール(詳細はカツアイ)
    2. GCE インスタンスを作成し、静的IPを割り当てる (詳細はカツアイ)
    3. ローカル端末で、Keyを作成する
      ssh-keygen -t rsa -b 4096 -C "testUser"
    4. GCEの設定画面で、Keyを貼り付け
    5. PORT:22での接続テスト
      gcloudコマンド (静的IPの割当が不要。インスタンス名で接続できる)
      gcloud compute ssh testUser@instance-1 --ssh-key-file ./test_rsa
    6. GCEのOS上でのsshdのポート変更
      5で接続した状態で、GCEの内部のsshd_configファイルの設定を変更する
      sudo vi /etc/ssh/sshd_config

      以下に、接続したいポート番号を追加
      #Port 22
      Port 22011
      #AddressFamily any


      そのあとに、サービスのRESTARTとSTATUSを確認
      sudo systemctl restart sshd
      sudo systemctl status sshd
      確認して問題なければ、一旦GCEから抜ける
    7. GCPのネットワークの設定でPORTの変更
      以下のケースでは、22から22011へ変更
    8. ローカルから、SSHでアクセステスト
      ssh testUser@34.67.184.203 -p 22011 -i ~/.ssh/test_rsa
    9. config の設定を加えるとVSCODEのからアクセスできる
  • 編集後記
    GCEインスタンスの開発なら、VSCODE+RemoteDevelopmentで開発して、Cloud Source Repositories へPushし、Cloud BuildでSTG環境と本番へデプロイが良いのでしょうか?
    でも、GAEなら、Cloud Shell で開発して、Cloud Source Repositories+Cloud Buildもできて、それならどこでも開発できるとも思ったりします。
    開発経験の少ない素人なので、良い方法が単純に知りたい・・・

2020/05/31

GCP: Cloud Source Repositories のソースを別プロジェクトにPUSH(コピー)する方法 on Cloud Shell

  • Goal
    類似アプリを作成する必要があり、Cloud Source Repositoriesのソースを別プロジェクトのレポジトリにコピーしたい。
    開発は、cloud shell 上で行っているので、そこでコピーする
  • How
    元のプロジェクト名: s001
    新しいプロジェクト名: s002 とする
    1. プロジェクトs002 に、新しいRepositoryを作成 --- GCPのコンソールで作成


    2. 以下、Cloud Shell上での作業

  • 参考情報
    レポへのリンクは以下から取れる
  • 編集後記
    Cloud ShellとCloud Source Repositories に、加えてCloud Buildで、色々できるようになりたいが、まだ、調べるのに時間がかかりすぎ。。。

2020/05/06

GCP: Bigquery 関数でGROUP BYしようとするとエラーがでる --- bq


  • Goal
    Bigqueryで、Timestamp のデータをdate(日付)にグループ化&集計し、日付の新しいもの順にソートをしたい
  • How
    例1) グループ化して集計は、OK
    SELECT date(timestamp),count(1)
    FROM xxxxxxxxxxx
    GROUP BY date(timestamp)

    例2) 日付の新しいもの順に並べようとしたら。。。
    SELECT date(timestamp),count(1)
    FROM xxxxxxxxxxx
    GROUP BY date(timestamp)
    ORDER BY date(timestamp) DESC

    実行すると、エラー。。。
    SELECT list expression references column timestamp which is neither grouped nor aggregated at [1:13]

    例3) 別名(alias)付けると、エラーはでない。
    SELECT date(timestamp) as TARGET_DATE, count(1)
    FROM xxxxxxxxxxx
    GROUP BY TARGET_DATE
    ORDER BY TARGET_DATE DESC
  • 編集後記
    しょうもない事で、時間を潰してしまったので、メモ。。。
    GROUP BYだけならOKで、ORDER BYを付けるとNG。
    これって結構常識なんでしょうか?しらんかった。

2020/05/03

ファイルのバックアップ時に、ファイル名に時間を追加する -- Linux, dateコマンド


  • GOAL
    Linuxでファイルのバックアップ取るときに、日付情報を追記する
  • HOW
    date コマンドを使う。
-> % ll
total 8
-rw-r--r--  1 toshi  staff    14B  5  3 00:49 testfile.txt

# Unix時間を追記する
-> % cp testfile.txt testfile.txt`date "+%s"`
-> % ll
total 16
-rw-r--r--  1 toshi  staff    14B  5  3 00:49 testfile.txt
-rw-r--r--  1 toshi  staff    14B  5  3 00:50 testfile.txt1588434625

# YYYYMMDDHHMMSSを追記する
-> % cp testfile.txt testfile.txt`date "+%Y%m%d%H%M%S"`
-> % ll
total 24
-rw-r--r--  1 toshi  staff    14B  5  3 00:49 testfile.txt
-rw-r--r--  1 toshi  staff    14B  5  3 00:50 testfile.txt1588434625
-rw-r--r--  1 toshi  staff    14B  5  3 00:51 testfile.txt20200503005117

# ハイフンでつなぐ -YYYY-MM-DDを追記する
-> % cp testfile.txt testfile.txt`date "+-%Y-%m-%d"`
-> % ll
total 48
-rw-r--r--  1 toshi  staff    14B  5  3 00:49 testfile.txt
-rw-r--r--  1 toshi  staff    14B  5  3 00:52 testfile.txt-2020-05-03
-rw-r--r--  1 toshi  staff    14B  5  3 00:50 testfile.txt1588434625
-rw-r--r--  1 toshi  staff    14B  5  3 00:51 testfile.txt20200503005117

2020/04/25

GCP: コンテナイメージから、GCEを立ち上げる方法 with Docker HUB -- GCP,GCE,docker


  • Goal
    • GCE(Google Compute Engine)に、コンテナイメージをDeployして立ち上げる。
    • Dockerのイメージは、DockerHUBから持ってくる。
  • How
    1. 準備:DockerHUBに、コンテナイメージを作成する。
      ①Github のrepositoryと、DockerHUBを連携させる
      ■連携の仕方
      https://docs.docker.com/docker-hub/builds/link-source/

      ドットインストールのPHP環境のテストをしたかったので、Docker fileなどを取得し、DockerHUBと連携させたGithubのrepositoryへpushする。すると、自動でDockerHUBにイメージが作成される!
      ■Githubのレポジトリ
      https://github.com/pumpkinpietea/dockerhub
      ■連携されたDockerhubのレポジトリ
      https://hub.docker.com/repository/docker/pumpkinpietea/github
    2. GCPのコンソールでGCEインスタンスをコンテナイメージを利用して立ち上げる。

      ■コンテナイメージ名に docker.io/アカウント名/レポ名 を入力する

    3. イメージを作成し、SSHでつないで見る。
      ~$ docker ps
      でコンテナIDを調べて
      ~$ docker exec -it コンテナ名 sh
      で、コンテナの中に入れる
  • Thanks!!
  • 編集後記
    • PHPの勉強をしようとして、ドットインストールさんの講座をみて進めようとしたが、Dockerをローカルmacには入れたくないと思い、GCPのf1-microインスタンスを使おうを思って取り組んだ。普通にインスタンス立ち上げて設定しようかとおもったが、少し調べてみたらコンテナイメージをDeployできるみたいなので試してみた。
    • GCE 1インスタンスで、 1コンテナとのこと。GKEの勉強しないと実業務には使えないかもしれないが、1インスタンスの開発環境の立ち上げとかには、。