【MySQL】Ubuntu16.04でデータベースを扱う!
はじめに
Ubuntu上でデータベースを扱うための準備を備忘録として残しておきたいと思います。これは2020年2月現在の情報なので時期によっては新しいバージョン等が出ている可能性もあるので注意してください。
環境
OS : Ubuntu 16.04
仮想化ソフト : VMware Workstation 15 Player
サーババージョン : 5.7.29-0ubuntu0.16.04.1
Windows10のPC上で仮想環境として実行しています。実際にサーバとして運用する場合は実機で用意するのが好ましいと思います。
作業
MySQLサーバのインストール
$ sudo apt install mysql-server
ターミナルから管理者権限で実行します
するとMySQLのrootパスワードを設定するように求められます。テスト用で構築する場合にはそのまま進んでもよいですが、基本的には設定しておいた方が良いと思われます。
MySQLサーバへの接続
$ mysql -u root -p
データベースの一覧を表示
mysql> show databases;
忘れがちですが、最後に「;」を忘れずに!
このようにデータベースの一覧が表示されます。
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
終了して通常のターミナルに戻る
mysql> exit
ユーザの作成
rootのまま作業を進めると恐ろしいことになりかねないので、別のユーザを作成しましょう。
mysql> CREATE USER 'user_name'@'host_name' IDENTIFIED BY 'password';
ユーザ作成の際には、ユーザ名は「'(ユーザ名)'@'(ホスト名)'」で指定します。ユーザ名とホスト名はシングルクオーテーション「'」で囲います。先ほどと同様に、最後の「;」を忘れずに…!(私はこれでエラーを吐かれました…)
このように表示されたら作成されているはずです。
Query OK, 0 rows affected (0.00 sec)
実際に作成されたか確認するために、ユーザ一覧を表示させて確認します。
mysql> SELECT user, host FROM mysql.user ORDER BY user, host;
これで作成したユーザ名が一覧内に表示されていれば成功です。
作成したユーザでMySQLへログイン
rootでログインする際と同じようにターミナルからログインします。
$ mysql -u (作成したユーザ名) -p
パスワードの入力を求められるので、入力して[Enter]
文字コードの変更
mysql> status
Server characterset: latin1
Db characterset: latin1の欄からわかる通り、文字コードがIatin1 になっているので、後々面倒が起こらないようにUTF-8に変更します。変更するにはMySQLの設定ファイルを変更します。お好みのエディタで編集できますが、ここではnanoエディタを使用します。
sudo nano /etc/mysql/my.cnf
開いた設定ファイルの末尾に以下を追記します。
[mysqld] character-set-server=utf8 skip-character-set-client-handshake default-storage-engine=INNODB [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8
MySQLサーバを再起動して、設定が変更されているか確認します。
mysql> status
このようになっていれば成功です。
Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8