がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

database領域の作成とユーザの作成

最近少し、作り方が変わったのか変えたのか。
こんなやり方をしてることが多いです、ってのがあったので備忘録。

create database データベース名;
CREATE USER 'ユーザ名'@'サーバ名' IDENTIFIED BY 'パスワード';
GRANT ALL ON データベース名.* TO 'univcoop'@'サーバ名';

サーバ名は、localhostじゃない場合で適度にワイルドカードしたい場合は「192.168.0.%」とかって書き方で。


あと。
MySQL8.0(.4 ?)から、認証方式のデフォルトがcaching_sha2_passwordってのに変わったそうでございます( https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html )。
via https://qiita.com/ucan-lab/items/3ae911b7e13287a5b917


で、その辺知らずにPDOでガリゴリっと書きますと

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

といった感じのエラーに出くわします。


この場合は、ユーザを作る時に

CREATE USER 'ユーザ名'@'サーバ名' IDENTIFIED WITH mysql_native_password BY 'パスワード';

ってな感じで、明示的に指定してやると、よい塩梅になるようでございます。


色々と、地味にあちこち変化はあるなぁ、と思いつつ、備忘録用にメモり。


あ。
いつの頃からかは不明ですが、パスワードが雑だと

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

的に怒られます。
大まかには
・英の大小文字、数字、記号がそれぞれ入って
・全体で8文字以上
という感じのようでございます。

my.cnfのvalidate-passwordとか「SHOW GLOBAL VARIABLES LIKE 'validate%';」で見て取れる値とかで色々あるようですが……まぁ、これくらいはこのままでもいいんじゃないかなぁ、的な。
なので、面倒なんで調べてないんで、興味がある各位におかれましては、自習いただければ幸いです。

特定のディレクトリ以下のファイルの文字コードをUTF-8に全部変換したい時

いやなんかググって動かしたら割とあちこちコケたので、面倒なんで一回ちゃんと調べて、その辺を備忘録。
ごく大まかには
・findで対象を引っかけて
・xargsつかって
nkfに引き渡す
感じ。

find ./ -type f -name *.php | xargs -pL1 nkf -w -Lu --overwrite

で確認してから

find ./ -type f -name *.php | xargs -L1 nkf -w -Lu --overwrite

で一気。


以下、解説つけつつ。

find ./ -type f -name *.php

ここはまぁ毎度な気がするので省略。

| xargs -pL1

xargs は「コマンドの実行」。基本、標準入力で入ってきた各行に対して有効なんで、パイプ使って。
L1は「1行づつ処理」で、pは「実行するまえに確認」。
なので、実際に動かすときはp抜いて-L1にするほうが楽。

nkf -w -Lu --overwrite

対象ファイルはパイプで入ってくるので。
--overwriteで「ファイル上書き」、-wは「UTF-8に変換」、-Luは「改行コードをLF(UNIX系)に」ってなあたり。
それ以外が必要そうならnkf調べて適当に追加。