Open2
Django REST Framework 学習メモ(Packt)
実行環境
- pipenv
$ pipenv --version
pipenv, version 2020.8.13
- python
$ pipenv run python --version
Python 3.8.3
- pip
$ pipenv run pip --version
pip 20.2.3
- Django : 3.1.3
MySQL の root パスワード忘れた. ( Homebrew でインストールしていた場合 )
- セーフモードで起動
$ mysql.server stop
$ /usr/local/bin/mysqld_safe --skip-grant-tables
2020-11-21T07:07:28.6NZ mysqld_safe Logging to '/usr/local/var/mysql/bohelabo.local.err'.
2020-11-21T07:07:28.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
root パスワードの更新
- MySQL 5.7以前
update mysql.user set authentication_string=password("new_pass") where user='root';
- MySQL 8以降
mysql > USE mysql;
mysql > ALTER USER 'root'@'localhost' identified BY 'hoge';
phpMyAdmin などのツールを利用する場合
mysql> select User, Plugin from mysql.user where User = 'root';
+------+-----------------------+
| User | Plugin |
+------+-----------------------+
| root | caching_sha2_password |
+------+-----------------------+
がデフォルトだが、 phpMyAdmin などは対応していない場合がある(らしい)
- DB を後方互換のある方式に変更
mysql> ALTER USER 'root'@'localhost' identified WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.01 sec)
「mysql_native_password」は後方互換性のある認証のようです。
同様に「my.cnf」にも書き込んでおく必要がある
/usr/local/etc/my.cnf
[mysqld]
# これがないと、デフォルトは、caching_sha2_password
default_authentication_plugin=mysql_native_password
参考
MySQL8でユーザーのパスワードの変更 / リセット方法
No default my.cnf #30286 - Github