Ubuntu18.04にMySQLをインストールする手順

はじめに
UbuntuにMySQLサーバをインストールする機会が何かと多く、MySQL5.7以降で少々設定が変わっていたのでインストールと設定手順をまとめます。
前提と環境
以下の通りです。
- OS : Ubuntu18.04
- MySQL : 5.7
参考サイト様
以降の手順は、以下の記事を大変参考にさせて頂きました。Digital Oceanの記事はどれも大変わかり易く助かります。
MySQL is an open-source database management system, commonly installed as part of the popular LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack. It uses a relational database and SQL (Structured Query Language) to manage its data.
必要なパッケージをインストールする
以下のコマンドを順番に実行し完了です。
MySQLサーバのセキュリティ設定を行う
MySQLサーバのセキュリティ関連の設定を行うためにmysql_secure_installtion
というツールが用意されているのでこれを実行します。
上記を実行すると、質問形式でいくつかのセキュリティ設定がはじまります。はじめに以下のようにパスワードバリデーション用のプラグインを使用するか確認されます。パスワードバリデーションというのは、MySQL用のユーザのパスワード強度をチェックし、十分セキュアなパスワードのみ受け付けるよう制限をかけることができます。例えば、最低何文字以上で必ず記号と数値を1文字以上含むなどです。この条件について次の質問で設定できます。
良ければy
を入力してEnterを押します。
上記の質問でy
にした場合は続いてパスワードバリデーションのレベルを聞かれます。LOW、MEDIUM、STRONGの3つのレベルがあり、ここではMEDIUMを選択するため1
を入力してEnterを押します。
なお、各レベルの内容は以下のようになっています。
LOW | 最低8文字以上 |
---|---|
MEDIUM | 最低8文字以上で数値、大文字小文字、特殊記号を必ず含む |
STRONG | 最低8文字以上で数値、大文字小文字、特殊記号を必ず含み、さらに4文字以上の文字列は辞書ファイルに登録されている単語に一致してはならないという制限あり |
0
を入力しEnterを押します。MEDIUM、STRONGはそれぞれ1
、2
を入力してEnterを押します。
続いて、実際にレベルを満たすパスワードを2回入力します。これはrootユーザ用のパスワードです。
パスワードを2回入力すると、0〜100のスコアが入力したパスワードに対して付けられて、これで良いか確認されます。セキュリティレベルが高いほど高いスコアになります。
以下の場合は50点のスコアが付けられています。OKな場合はy
を入力してEnterを押します。
なお、今後MySQL用のユーザを作成する際に設定するパスワードは、ここで設定したセキュリティレベルを満たす必要がありますので注意してください。 また、大変紛らわしいですが、ここで入力したrootユーザ用のパスワードは実際にMySQLサーバにログインする際に使用できず、設定変更を行う必要があります。これについては後述します。
続いてMySQLがデフォルトで設定するテスト用の匿名ユーザを削除するか確認されます。良ければy
を入力してEnterを押します。
リモートからのrootログインを禁止するか確認されます。ここではy
と入力してEnterを押します。
通常MySQLがデフォルトで作成する「test」というどのユーザもアクセス可能なデータベースを削除するかの確認です。y
と入力してEnterを押します。
これまで行った設定を反映させるためにリロードして良いかの確認です。y
と入力してEnterを押します。
最後にここまでで設定した内容が表示され、以下のようにAll done!
と表示されればセキュリティ設定は完了です。
MySQLにパスワードでログインできるように設定変更する
上記の設定でパスワードを設定しましたが、これはこのままでは使用されません。というのもMySQL 5.7以降では、MySQLのrootユーザはデフォルトではそもそもパスワードによるログインができないようになっています。パスワードの代わりに、システムのrootユーザ(ここではOSがUbuntuなのでUbuntuのrootユーザ)情報でログインする必要があります。すなわち、以下のようにsudo
でMySQLのrootユーザとしてもMySQLにログインできます。
これはMySQL 5.7以降でauth_socket
というプラグインが使用されているためです。もし、従来と同様にMySQLのrootユーザ用にパスワードを設定し、そのパスワードでMySQLにログインしたい場合はauth_socket
の代わりにmysql_native_password
というプラグインを使用するよう変更する必要があります。この作業はとても簡単です。
具体的には、sudo mysql
でMySQLにログインした後、以下のコマンドを実行します。
私の環境では以下のように表示されました。そしてrootユーザのpluginという部分がauth_socket
になっていることが確認できます。
これを従来のパスワード認証に変更したい場合は以下のコマンドを実行します。yourpassword
は実際に使用したいパスワードを入力してください。
後はこの変更を以下で反映させます。
上記を実行した後でもう一度rootユーザのpluginを確認してみると、以下のようにauth_socket
からmysql_native_password
に変更されていることを確認できます。
以上で完了です。なお、今後はMySQLにrootユーザでログインしたい場合は、以下のコマンドになります。
まとめ
MySQL5.7から少々設定方法が変わっていた部分があったのでメモしておきます。何かと設定を行う機会が多いです。
関連記事
- 公開日:2020/02/10 更新日:2020/02/10
UbuntuをmacOSのCatalinaっぽい見た目にする
UbuntuのデスクトップをmacOSのCatalinaっぽくするためのカスタマイズ手順をまとめます。
- 公開日:2020/01/20 更新日:2020/01/20
MySQLでrootのパスワードを忘れたりログインできなくなった場合の対処方法
MySQLのrootのパスワードを忘れてしまいrootでログインできなくなってしまいましたが、rootのパスワードを再設定することができたのでその手順をまとめます。
- 公開日:2019/12/31 更新日:2019/12/31
How to update Ubuntu's Kernel only
This article show you how to update Ubuntu's kernel using ukuu(Ubuntu Kernel Update Utility).
- 公開日:2019/09/10 更新日:2019/09/10
Ubuntuで/var/cache/apt/archives/パッケージ名の処理中にエラーが発生した場合の対処法
Ubuntuで「dpkg: アーカイブ /var/cache/apt/archives/パッケージ名.deb の処理中にエラーが発生しました」、「Sub-process /usr/bin/dpkg returned an error code (1)」というエラーが共にでました。ここのエラーの解決策をまとめます。
- 公開日:2019/09/09 更新日:2019/09/09
CSVファイルをMySQLにインポートするSQL文
CSVファイルをMySQLにインポートするSQL文をよく使うのでこのSQL文についてメモします。
開発アプリ
