2019年5月7日火曜日

goサブパッケージの作り方

以下の構成のパッケージ作成を例とします。
├── models
│   ├── common
│   │   └── callAPI.go
・まず「common」というサブディレクトリを作成します。
・次に「callAPI.go」ファイルを作成します。callAPI.goのファイル先頭に「package common」を追加します。
・コマンドラインで「common」の配下に移動した後、「go install」を実行します。

※自分は最初「go install」で実行したら、以下のエラーが表示されました。
 expected 'package', found 'EOF'
理由はファイル「callAPI.go」を保存していなかったからでした。
エディター「Visual Studio Code」を使っているなら、「ファイル」→「保存」をしないと自動的に保存してくれないようでした。

2019年4月25日木曜日

macでmysqlを止められない時の対策

dockerを立ち上がろうとしたら、以下のエラーがでました。
ERROR: for test_db_1  Cannot start service db: driver failed programming external connectivity on endpoint test_db_1 (c0725b1665ce0d657ae65b915142e9e7dfbc8a3405d2b1599f9c26377a894526): Error starting userland proxy: Bind for 0.0.0.0:3306 failed: port is already allocated

ERROR: for db  Cannot start service db: driver failed programming external connectivity on endpoint test_db_1 (c0725b1665ce0d657ae65b915142e9e7dfbc8a3405d2b1599f9c26377a894526): Error starting userland proxy: Bind for 0.0.0.0:3306 failed: port is already allocated

ERROR: Encountered errors while bringing up the project.
つまり、3306ポートが既に使われています。

どんなサービスをそのポート番号を占めているのかを確認します。
 sudo lsof -i:3306
Password:
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME

mysqld  10115 _mysql   14u  IPv6 0xebcee56ac2cbc277      0t0  TCP *:mysql (LISTEN)
見事に自分のローカルのmysqlでした。
そして、「mysql.server stop」で止めようとしたら、エラーになりました。
 mysql.server stop
 ERROR! MySQL server PID file could not be found!
強制的にプロセスをkillしたら、また立ち上げれました。
そして、以下の方法もためしたました。全部だめでした。
$/usr/local/bin/mysql.server stop

 sudo /usr/local/mysql/bin/mysqld stop
sudo /usr/local/mysql/support-files/mysql.server stop
最後、以下の方法でようやく止めることはできました。
 sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

エラー「ERROR: Couldn't connect to Docker daemon. You might need to start Docker for Mac.」がでました

久しぶりdockerコマンドを実行したら、以下のエラーがでました。
ERROR: Couldn't connect to Docker daemon. You might need to start Docker for Mac.
docker削除したことを思い出しました。
解決方法として、次のリンクからインストールすることです。https://docs.docker.com/docker-for-mac/install/