MySQL8 で root のパスワードを設定する

MySQLをインストールした後、rootのパスワードを設定しようとして躓いたので…
いろんなとこに書いてある

mysql > update mysql.user set password=password('パスワード') where user = 'root';
これがエラーになり、

mysql > ALTER USER 'root'@'localhost' identified By 'パスワード';
これがなぜか

mysql> ALTER USER 'root'@'localhost' identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)

設定できてるようで確認すると

何も設定できてないようです。

PASSWORD(”) はMySQL5.7では廃止されているそうです。
Alter構文でも設定できない理由がわからない…

下記で解決しました。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'パスワード';

caching_sha2_password はMySQLの認証プラグインだそうです。
https://blog.s-style.co.jp/2018/05/1807/

稼働中のwpサイトの開発環境構築

ubuntu14で運用してるWPサイトのためにM2-Macで開発環境を作りましたので覚え書き

UTMでmacの中に仮想環境ubuntu14を作る

sshd と ファイアウォールを設定してsshで作業できるようにする

前準備)LAMP環境のインストール
apt install apache2
apt install mysql-server-## mysql-client-##
apt install php##

ポートは22と80を開けておく

1)現行サイトからとってくるもの
-WPのファイル
-DB

2) データベースファイルを開発環境(UTM)へ

運用中のものと同じ空のデータベースを作成しておく
CREATE DATABASE [データベース名];
ファイル共有してsqlファイルのある場所で
mysql -u [ユーザー名] -p [上で作成した読み込み先データベース] < [読み込むファイル.spl]

パスワードを聞かれた後読み込みが始まります。
内容によると思いますが、けっこう時間がかかりました。

3)WPのファイルをコピーして設定をする
共有フォルダからDocument Root ディレクトリへ
ちなみにwp内の全てのファイルをすでに存在するディレクトリへコピーするときは
cp -pR /media/share/wp/* /var/www
ディレクトリ自体をコピーするときは
cp -r /media/share/wp/directory /var/www/directory
のようにします。

wp-configのDB名、ユーザー名、パスワード、ホストを設定します。
ホストは127.0.0.1

ルートディレクトリの設定をします。設定するのは
/etc/apache2/
の apache2.conf
/etc/apache2/sites-available
の 000-default.conとdefault-ssl.conf
3箇所です

4)mac のhostsを編集して稼働中のサイトのドメインで開発環境が表示されるようにする
macの/private/etc/hostsへ
127.0.0.1 sitename.com
を追記します。

今回新規にインストールしたApacheでSSLを有効化してなかったので最初
sudo a2enmod ssl
sudo a2ensite default-ssl
でapacheを再起動したら表示されました。

あとphpにmysql拡張モジュールがインストールされてない状態で
WPのインストールをしようとすると500エラーとなってしまいます。
なので
sudo apt install php-mysql

M2 macから仮想環境(UTM)のubuntuへファイル共有する

VirtFSというホスト/ゲスト間でのファイルのやり取りをするプロトコルを使います。
公式によるとLinuxの仮想マシンではSPICEよりもVirtFSが推奨だそうです。

仮想マシンの”共有”タブでVirtFSを選択、ホスト側の共有フォルダを指定して仮想マシンを起動します。
UTMの設定

次に起動したゲスト側で共有フォルダを作成して、フォルダをマウントします。
今回は/media/share を作って使います。
$ sudo mkdir /media/share
$ sudo mount -t 9p -o trans=virtio share /media/share -oversion=9p2000.L

これでホストで共有フォルダに入れたファイルをゲストから見ることができます。



$ls /media/share
test.txt

ただこのままだと、再起動するたびにマウントする必要があります。
だもんで /etc/fstab へ起動時にマウントするディレクトリとして指定します。

share	/media/share	9p	trans=virtio,version=9p2000.L,rw,_netdev,nofail	0	0

これで起動時に毎回自動的にマウントされます。

M2 Mac に Homebrew をインストール

次のコマンドを入力してインストールします。
ちなみにVPNは切ってからしないと最初エラーでした。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ログインパスワードを入力するとダウンロード⇨インストールが始まります。
インストール完了後。。。

==> Next steps:
- Run these three commands in your terminal to add Homebrew to your PATH:
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/ユーザー名/.bash_profile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.bash_profile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started

↑の3つのコマンドを実行しなさいと言われます。
パスを自分で通す必要があるようです。
それぞれ実行します。

$ brew help
Example usage:
brew search TEXT|/REGEX/
brew info [FORMULA|CASK...]
brew install FORMULA|CASK...
brew update
brew upgrade [FORMULA|CASK...]
brew uninstall FORMULA|CASK...
brew list [FORMULA|CASK...]
Troubleshooting:
brew config
brew doctor
brew install --verbose --debug FORMULA|CASK
Contributing:
brew create URL [--no-fetch]
brew edit [FORMULA|CASK...]
Further help:
brew commands
brew help [COMMAND]
man brew
https://docs.brew.sh

このままではまだで、Appleシリコン用の設定をする必要があります。

finderのターミナルからRossetaを使用して開くにチェックを入れる必要があります。

XLDを使ってCentOS7.xでUbuntu14.04を使う 1)

CentOSのアップデート

$ sudo yum update
$ sudo yum install epel-release
$ sudo yum update

snapdをインストール
snapdとはディストリビューションに依存せずにパッケージ管理を行うためのツールだそうです

最初にCopr(Cool Other Package Repo)をインストールする
$ sudo yum install yum-plugin-copr
正規のディストリビューションには含まれてませんので自己責任で!とか言われます。

Coprにあるsnapdをインストールする
$ sudo yum copr enable ngompa/snapcore-el7
$ sudo systemctl enable --now snapd.socket
Created symlink from /etc/systemd/system/sockets.target.wants/snapd.socket to /usr/lib/systemd/system/snapd.socket.

snapを使ってLXDのインストール

$ sudo snap search lxd
Name Version Publisher Notes Summary
lxd 5.10-b392610 canonical** - LXD - container and VM manager
lxd-bgp 0+git.a30c4fe stgraber - BGP server that exposes LXD routes
lxd-demo-server 0+git.6d54658 stgraber - Online software demo sessions using LXD
lxdmosaic 0+git.c6f53f3f turtle0x1 - A web interface to manage multiple instances of LXD
lxd-gitlab-runner 0.1 alexclewontin - GitLab CI/CD runner with built in LXD executor
microcloud 0+git.d78a41a canonical** - Automated small-scale cloud deployment
fabrica 1.1.0 ogra - Build snaps by simply pointing a web form to a git tree
nova ocata james-page - OpenStack Compute Service (nova)
nova-hypervisor ocata james-page - OpenStack Compute Service - KVM Hypervisor (nova)
distrobuilder 2.1 stgraber classic Image builder for LXC and LXD
satellite 0.1.2 alanzanattadev - Advanced scalable Open source intelligence platform

$ snap install lxd
2023-01-29T06:18:58+09:00 INFO Waiting for automatic snapd restart...
lxd 5.10-b392610 from Canonical** installed

インストールの確認をします

$ sudo ln -s /var/lib/snapd/snap /snap
$ snap list
Name Version Rev Tracking Publisher Notes
core20 20221212 1778 latest/stable canonical** base
lxd 5.10-b392610 24323 latest/stable canonical** -
snapd 2.58 17950 latest/stable canonical** snapd

$ snap services
Service Startup Current Notes
lxd.activate enabled inactive -
lxd.daemon enabled inactive socket-activated
lxd.user-daemon enabled inactive socket-activated

最初、lxdコマンドを入力しても command not found となっていましたが、ログインし直すと反応してくれるようになりました。CentOSでsnapを使う時のご作法のようでした。

$ lxd --version
5.10

きょうはここまで。。。

CentOSで lsb_release コマンドが使えない

インストールする
$ sudo yum install redhat_lsb
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core

ログインと同時に時刻設定する

UTMで構築したサーバー、ちょいちょい時間が止まるので、ログイン後毎回時刻設定するのを自動化したい

解決方法:
~/.profile のなかにシェルスクリプトを書く

sudo ntpdate ntp.nict.jp

毎回ログイン時にパスワードを聞かれるけど一応これで解決

bash: php: command not found

montereyにアップデートしたらMAMPにインストールしてるphpがうごかなくなる。

解決:Pathを通してあげるだけ

/Applications/MAMP/bin/php/ の中の好きなバージョンへ以下のようにパスを通す

~/.bash_profile に以下を追加する

export PATH=$PATH:/Applications/MAMP/bin/php/php5.4.10/bin

$ source ~/.bash_profile

で設定を反映させる


$ which php
/Applications/MAMP/bin/php/php7.3.1/bin/php
$ php -v
PHP 7.3.1 (cli) (built: ######### ) ( NTS )

composerで “Script php artisan optimize handling the post-update-cmd event returned with error code 1” が出たら

laravel 5.4以降で artisan optimizeを使おうとしているのが原因らしい。。。
なのでcomposer.json から

"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize" ←この行を消す
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize" ←この行を消す
]
},

と表示されなくなりました。