はじめに
いままでphpmyadminとmysqlのgemに頼り切っていた私は最近、phpmyadminの脆弱性に気づきました。どうせならコマンドから操作したいと思ったのでMySQLを導入しようと思ったのですが、パスワード設定が思ったより難航したので参考にどうぞ。
環境: mysql 8.0.19 MacOS
まずインストール
Macにパッケージをインストールしていくにあたって、バージョン管理をしてくれるhomebrewというものが主流のようなのでまずhomebrewをインストールします。
ターミナルを開き、入力していきます。(ターミナルはMacにデフォルトで入っているもので構いません)
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
(homebrew公式ページより)
mysqlをインストール
% brew install mysql
ビールの絵文字が出てくればインストール成功。
brew listと打ってmysqlという文字が確認できればOK
初期設定
インストールした時点でサーバーは立ち上がっているのでルートユーザーでログインします。
% mysql -uroot
/////省略/////
mysql>
このようにmysql>と出て、sqlのコマンドを受け付けてくれるようになりました。
パスワードの設定
このままではセキュリティー上、パスワードがなくてもmysqlにアクセスできてしまうので、パスワードを設定します。
そしてflush privileges;で反映させます。
mysql> set password for root@localhost='ここにパスワード';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
パスワードがちゃんと使えるのか確認
一回mysqlを抜けて再度ログインします
EnterPasswordで先ほど設定したパスワードを求められるので入力してmysql>で入力待ちの状態になればパスワードは設定されています。
mysql> quit
Bye
% mysql -uroot -p
Enter Password:
*注意 先ほどはmysql -urootでログインしましたがパスワードを設定後にこのコマンドでアクセスしようとすると
% mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
このようにパスワードなしではログインできません!とエラーが出ます。パスワード設定後は-urootの後に-pをつけることで正常にアクセスが可能です。
ついでに
このように始めはうまくパスワード設定ができてもログインができないことがあります。私の場合サーバーが立っていないということがよくあったのでそういうときはこうやって↓コマンド打ってサーバーを立ち上げましょう!
% mysql.server start
Starting MySQL
.. SUCCESS!
私情ですが。。
プログラミング学習のことで話せる初心者の学生さん!もしよければ
twitterアカウントまでお願いします