コピペコードで快適生活

明日使えるソースを自分のために

よく見る圧縮形式メモ

雰囲気でしかわかってなかったので整理。 zip WindowsやMacの標準形式 圧縮率は高くない 4GBを超えるファイルは扱えない 圧縮後に2GBを超えるファイルは扱えない Macの標準機能で圧縮すると、Windowsでファイル名が文字化けする Linuxでは標準で使えない 複…

MySQLでバイナリログを削除する

バイナリログファイルの確認 メインDBで確認する mysql> show master logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000091 | 141 | # 略 | mysql-bin.000107 | 98 | +------------------…

MySQLの文字セットと照合順序

MySQLでは、データベース、テーブル、カラムのそれぞれに対して文字セットと照合順序を設定できる。 文字セット 用語 文字セットとは、文字と符号の対応付けたセット。 文字コードとは、文字セットの符号をビット列に変換する方式。 例: Unicodeは文字セット…

MySQLのストレージエンジンを確認する

-- 使用できるエンジンを確認する -- デフォルトのエンジンを確認する show engines; -- テーブル設定を一覧表示する show table status; -- テーブルの設定を確認する SHOW CREATE TABLE #{table_name}\G

PHPでの日時処理

PHP

PHPよく理解してないので整理。日時まわり。 date関数 出力したい文字列のフォーマットを受け取り、現在日時(or渡したタイムスタンプ)の日時を、文字列で返す https://www.php.net/manual/ja/function.date.php echo date('Y-m-d'); // -> 2021-06-01 echo d…

PHPUnitのテストの書き方 超入門

PHP

いままで書いたことなかったのでメモ。

ポートフォワードして繋ぐMySQLユーザのHostはなに?

結論 踏み台サーバの内部IPアドレス 実験 前提 踏み台の内部IPアドレス: 192.168.10.10 MySQLサーバの内部IPアドレス: 192.168.10.20 ポートフォワードする ssh kinosuke01@fumidai -L 3306:192.168.10.20:3306 -N Hostが127.0.0.1のユーザを作る mysql> sel…

homebrewで複数バージョンのMySQLをインストールして切り替えする

# インストール可能パッケージの確認 brew search mysql # 最新版のインストール brew install mysql # 過去バージョンのインストール brew install mysql@5.7 # unlinkとlinkでバージョン切り替えする % brew unlink mysql && brew link --force mysql@5.7 …

Go言語の環境構築+モジュール管理

Go

Goは2つのモードがある GOPATH モード バージョン1.10までの(過去の)モード。コード管理とビルドをGOPATHで指定されたディレクトリ以下で行う。 パッケージはリポジトリの最新リビジョンのみ扱う。 モジュール対応モード パッケージをモジュールとして管理す…

クリーンアーキテクチャについて学んだことメモ

全体を通した感想 たぶんこういうことかなと。 UIとビジネスルールとDBを疎結合とすること 変更容易性の向上 変更による影響範囲を小さくする テスト容易性の向上 テスト対象が依存するオブジェクトをモックに差し替えやすい レイヤードアーキテクチャ 依存…

データソースのアーキテクチャ

データソースのアーキテクチャについて学んだことメモ。 TableDataGateway インスタンスがテーブル内のすべての行を操作する。 SQLはこのインスタンス内に閉じる。 https://bliki-ja.github.io/pofeaa/TableDataGateway/ RowDataGateWay 1クラス=1テーブル、…

リーン顧客開発の読後メモ

https://www.amazon.co.jp/dp/4873117216 を読んで、いいなと思ったポイントをメモ。 1.顧客開発の目的 顧客が欲しがるものについての誤った思い込みを早く見つける 本当に購入してくれる製品の開発に集中できるように 2.何からやるか チームで時間を作って…

OS起動時に自動でディレクトリやファイルを作成する

たとえば、CentOS7では、/var/run/* がシャットダウン時に削除されるけど、OS起動時にはディレクトリ作っておいてほしいケースとかで使う。 設定ファイル置き場 /etc/tmpfiles.d/*.conf 記法 # ディレクトリがなければ作る d /var/run/my_app 755 root root …

kubectlでpodのログを確認するまで

context、namaspace、deploymentがわかっている状態からどうやって確認するかメモ contextの確認・設定 設定は ~/.kube/config に書いてある。 # 一覧表示 kubectl config get-contexts # 切り替え kubectl config use-context my-context # 現在のcontextの…

プロセスが掴みっぱなしの削除済ファイルを取り出す

ファイルを作成して、lessで掴む $ echo 'dummy data' > example.txt $ less example.txt 別ターミナルで、掴んだファイルを消す $ rm example.txt 削除済のファイルを掴んでいることを確認できる $ ps a | grep less 23249 pts/14 S+ 0:00 less example.txt…

VSCodeメモ

VSCodeを使うことにしたので、基本的な使い方を逐次追加していく。 ファイル名検索 Command+P コマンドパレット Command+Shift+P 置換 コマンドパレット → replace 大文字変換 コマンドパレット → Uppercase 矩形選択 始点をクリックしてから、終点を[Shift…

systemctlコマンドメモ

# サービス一覧 # 設定ファイルの配置場所: https://kinosuke.hatenablog.jp/entry/2021/03/18/195942 systemctl list-unit-files --type=service # サービス起動 systemctl start ${svc_name} # サービス停止 systemctl stop ${svc_name} # サービス再起動…

WordPressの自動アップグレードの挙動

古いWordPressをインストールしたはずなのに、管理ページにログインしたら「WordPressは最新です」という表示が出ていたので、おやおやこれはどういうことだろうと思って、調べてみた。 バージョンの区切りは メジャーver.メジャーver.マイナーver 5.7.1 の…

MySQLのレプリケーションユーザ名を修正する

MySQLのレプリケーションユーザ名を間違っていたので、mainの稼働を止めずに修正する。 やること概要 レプリケーション停止して、設定をリセットする mainでユーザ名を変える mainからバックアップを取得する replicaにリストアする レプリケーションの接続…

MySQLリストアした後にログインできない

症状 リストアしたDBに、一部のユーザでMySQLにログインできない 原因 mysql.userテーブルを直接更新した場合、権限設定が自動で再ロードされないため。 対応方法 mysqldをrestartするか、 mysql> FLUSH PRIVILEGES; すればOK。 経緯 移行元 # 移行元からダ…

MySQLのnative_passwordとold_password

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) - コピペコードで快適生活 の続き パスワードの設定 # ユーザ作成時に設定する CREATE USER 'jeffrey'@'localhost' IDENTIFI…

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

$ mysql -u app_user -h 192.168.0.1 -p Enter password: ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) とでた。 mysql_native_passwordで認証しようとしたけど、mysql_ol…

トラブルシュート時に使うコマンドメモ(2)

# wchanでプロセスの待ち状態を表示 sudo ps ax -opid,cmd,wchan # fオプションでプロセスをツリー表示 ps auxf # システムコールレベルでの処理をトレース strace -p <プロセスの PID> # 子プロセスもまとめてトレース strace -p <プロセスの PID> -f # プ…

GTMの用語メモ

GoogleTagManagerをはじめて使ったので用語をメモ。 アカウント(GTM埋め込みコードと1対1対応) workspace 複数持つことができる下書き git branch みたいなの workspaceで修正したものはプレビューで確認可能 公開とするとこで本番反映される タグ(実際に埋…

consulのリーダー選出の仕組み

よくわかっていなかったのでメモ。 consulのリーダー選出には、Raft プロトコル(分散合意アルゴリズム)が使用されている。 各ノードは次の3つのステートを持つ。 leader follower candidate 遷移 起動直後はみんな follower followerはランダムなTimeout…

CentOS7にcurl最新版をインストールする

古いディストリビューションへの最新のパッケージ提供を行っている city-fan からyumリポジトリを取得して、そこからインストールする。 rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm yu…

ルーティングの確認&更新

よくわかっていなかったので整理。 # ルーティングテーブルの確認 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 100 0 0 eth0 # デフォルトゲートウェイ = 192.168.0.1 default 1…

LVSとかkeepalivedとか

用語の整理 LVS これはなに? Linux Virtual Serverの略称で、負荷分散装置に求められる基本的な機能を提供する。 構成要素 IPVS(IP Virtual Server) 負荷分散機能を提供する ipvsadmユーティリティ LVSのほとんど全ての設定をipvsadmコマンドで行う 使い…

CentOS7 systemd のファイル・フォルダ構成

/etc/init.d に慣れすぎて覚えられないのでメモ。 /usr/lib/systemd/system CentOS 7 のデフォルトで設定されているサービスや、yum などで提供されているソフトウェアをインストールした際のデフォルト設定を保存する /etc/systemd/system サーバーの管理者…

chefで手っ取り早くデバッグ出力

# 手っ取り早くデバッグ # 以下を仕込んで、 # why-runすればコンソールにされる log 'debug_message' do message 'DEBUG MESSAGE!!!' level :fatal end https://docs.chef.io/debug/