手順一覧
- 1
MariaDBサーバーに接続
- 2
MariaDBのrootパスワード設定
- 3
文字コードをlatin1からutf8に変更
ポイント
MariaDBサーバーに接続
MariaDBに接続するときは、mysqlコマンドを使います。
mysql -u root -p
「u」オプションを使うことで接続に使うユーザーを指定。
「root」を指定していますが、ここでの「root」はLinuxのアカウントのことではなくMariaDBに予め登録されている管理者権限のユーザーのことです。
インストール直後はパスワードなしで接続することができるので対処します。
MariaDBに接続するとプロンプトが以下のように変わります。
MariaDB [(none)]>
MariaDBのrootパスワード設定
先にも書いたように、MariaDBのrootユーザーにはパスワードが設定されていません。
これは問題なので、今からパスワードを設定します。
ユーザーの情報が格納されているmysqlという名のデータベースをuse文で指定します。
MariaDB [(none)]> use mysql;
use文でデータベースを指定すると、プロンプトがnoneから指定したmysqlに変わります。
MariaDB [mysql]>
次に、今の設定がどのようになっているのか確認してみます。
select host,user,password from user;
+--------------------------+------+----------+
| host | user | password |
+--------------------------+------+----------+
| localhost | root | |
| su-camp031.superusers.jp | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| su-camp031.superusers.jp | | |
+--------------------------+------+----------+
6 rows in set (0.00 sec)
updateでrootパスワード設定
update文を使ってrootのパスワードを設定します。
update user set password=password('sucamp') where user = 'root';
パスワードのアップデートをしたらselect文で確認。
今回は講座ということでパスワードは「sucamp」としていますが、実際にセットアップするサーバーでは強度の高いパスワードを使ってください。
設定したパスワードを即時反映させるためにflush privilegesとタイプします。
flush privileges;
deleteでデータを削除
delete文でパスワードの設定がないデータを削除します。
delete from user where password = "";
設定後のuserテーブルの内容はこのようになります。
+--------------------------+------+-------------------------------------------+
| host | user | password |
+--------------------------+------+-------------------------------------------+
| localhost | root | *0259K2E6B8F7CEDAA3502F7G653EF4A39C638CFF |
| su-camp031.superusers.jp | root | *0259K2E6B8F7CEDAA3502F7G653EF4A39C638CFF |
| 127.0.0.1 | root | *0259K2E6B8F7CEDAA3502F7G653EF4A39C638CFF |
| ::1 | root | *0259K2E6B8F7CEDAA3502F7G653EF4A39C638CFF |
+--------------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)
MariaDBサーバーの文字コード設定
MariaDBをインストールした後に必ずやっておくことの2つ目が、文字コードをlatin1からutf8に変更することです。
まずはstatus文で現在の文字コードをチェックします。
status;
MariaDBのバージョン等が表示されている中、以下のようにセットされている文字コードが表示されます。
Server characterset: latin1
Db characterset: latin1
latin1の状態で日本語のデータを挿入すると文字化けするので、恒久的にutf8になるように設定をします。
MariaDBの切断
現在接続しているMariaDBサーバーを切断して、Linuxとの会話に戻ります。
\q
/etc/my.cnf.d/server.cnfの編集
文字コードは、/etc/my.cnf.d/server.cnf の中に記述します。
server.cnfのオリジナルをコピーした後に以下のように編集してください。
[server] ←の記述の下に、
character-set-server = utf8
「character-set-server = utf8」を追記した後にMariaDBを再起動すれば設定が反映されます。
再度MariaDBサーバーに接続して、文字コードがutf8に変わったことを確認してください。今度は、設定したパスワードを入力する必要があります。
文字コードを設定し、MariaDBの再起動後は以下のように表示されるはずです。
status;
--------------
mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 8
Current database: mysql
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 5.5.64-MariaDB MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 23 hours 56 min 17 sec
Threads: 1 Questions: 146 Slow queries: 0 Opens: 15 Flush tables: 2 Open tables: 41 Queries per second avg: 0.001
--------------