Yamamoto's Laboratory
コンピューター 自宅サーバー 三代目 WEB server の MySQL

Ubuntu server 18.04MySQL

ubuntu server での MySQL の設定方法について説明ます.インストールからクライアントソフトウェアーの接続まで,具体的な手順を述べます.

目次


インストール

MySQL

インストール

ubuntu server をインストールするときの「インストールするソフトウェアーの選択」の画面で LAMP server をチェックすれば,MySQL のサーバーがインストールされます.後からインストールする場合は,以下のコマンドをつかいます.

$ sudo apt install mysql-server

途中,メッセージ「root のパスワードを設定することを強くすすめる」が表示されます.root のパスワードは後で設定するので,ここでは [Enter] キーを押します.

インストールされている MySQL のバージョンは,以下のコマンドで調べることができます.

$ mysql  --version

パスワード設定

通常,ubuntu server インストール時に root のパスワードを設定します.設定しなかった場合や,後から MySQL をインストールした場合,パスワードを設定します.方法は,(1)パスワード無しでMySQLにログイン,(2)パスワード設定,(3)MySQLのログアウト,(4)パスワード付きでMySQLにログインという手順で,設定・確認を行います.具体的には,以下の通りです.

$ mysql -u root   パスワード無しでログイン
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 428
Server version: 5.1.58-1ubuntu1 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password for root@localhost=PASSWORD('XXXXX');     XXXXXはパスワード
Query OK, 0 rows affected (0.00 sec)

mysql> exit   いったん終了
Bye

$ mysql -u root -p   パスワード有りでログイン
Enter password:XXXXX    パスワードを入れる 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 430
Server version: 5.1.58-1ubuntu1 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL を制御するコマンド

以下のコマンドで,MySQL サーバー (mysqld) をコントロールすることができます.これらのコマンドを実行する場合,status を除いてルートでの操作 (sudo) が必要です.

systemctl start mysql MySQL のデーモンを起動します.
systemctl stop mysql MySQL のデーモンを停止します.
systemctl restart mysql MySQL デーモンを再起動します.デーモンが実行されていない場合,起動します.
systemctl status mysql ステータスを表示します.

phpMyAdmin

phpMyAdmin は,WWW上で MySQLの管理を行うための PHP で書かれたツールです.これは便利なので,インストールしておいた方が良いでしょう.

インストール

私の自宅のサーバーには,以下のようにしてインストールしました.

  1. apt-get コマンドでインストールします.インストールの前に,サーバーからパッケージリストを入手(update)した方が良いでしょう.
    # apt-get update
    # apt-get install phpmyadmin
  2. 「phpMyAdminを動作させるために自動設定…」と言うメッセージが現れます.私の場合,apache2を選択しました(図1).
  3. 「phpMyAdmin は利用できるようになる前には…」と言うメッセージが現れます.メッセージを読むと,<Yes> を選択すべきか? とりあえず,<Yes>を選択して,次に進む(図2).
    自動設定する web サーバー データベース設定
    自動設定する web サーバー データベースを dbconfig-common で設定?
  4. パスワードに関するメッセージが現れます.管理者権限のアカウントのパスワードを入れて,<Ok>を押すと再度確認の画面が現れます.当然,同じパスワードを入れます(図3).
    管理者権限のパスワード
    管理者権限のパスワード設定

以上でインストールは,完了です.apache の設定ファイルは,/etc/phpmyadmin/apache.conf です.これは,phpmyadmin.conf -> ../../phpmyadmin/apache.conf とシンボリックリンクが張られています.このファイルを見ると,「Alias /phpmyadmin /usr/share/phpmyadmin」と記載があります.したがって,phpmyadmin のご本尊は,/usr/share/phpmyadmin と言うことが分かります.

とりあえず,サーバーを再起動します.

確認

webブラウザで「http://サーバーホスト/phpmyadmin/」を開きます.以下が現れたら,インストールは問題ありません.

phpMyAdmin の起動画面
phpMyAdmin の起動画面

設定

警告「設定ファイルに定義されている管理ユーザ(controluser)での接続に失敗しました」が出ることがあります.この場合,ファイル「/etc/phpmyadmin/config.inc.php」を修正すれば,この警告は無くなります.ファイル中の以下の二行を書き換えます.これらは,MySQLの管理者名とパスワードです.元々は,$dbuser と $dbpass です.

$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'rootのパスワード';

データの引っ越し

サーバーを変えた場合,MySQLのデータの引っ越しが必要です.

  1. 旧サーバーに,SSH等でログインして,データベースのバックアップのファイルをつくります.ユーザーは root でなくても良いです.ただし,権限には気をつけてください.ファイル名(backup_file.dat)もお好きなように.
    $ mysqldump -u root -p -x --all-databases --default-character-set=binary >  backup_file.dat
  2. バックアップファイル(backup_file.dat)を新サーバーの適当なディレクトリーにコピーします.
  3. バックアップファイルを新サーバーでリストアします.
    $ mysql -u root -p --default-character-set=binary < backup_file.dat

以上で MySQL の引っ越しは完了です.データベースのみならず,ユーザーも合わせて引っ越しできるようです.

使い方

コマンド

対話型の MySQL クライアントの起動コマンドは,「mysql -u XXXX -p」です.XXXXは,ユーザー名です.このコマンドを入力すると,MySQL はパスワードを問い合わせてきます.正しいパスワードを入力すると,対話型の MySQL クライアントが起動します.終了コマンドは,「exit」です.

MySQL のユーザーは,ユーザー名@ホスト名で判別されます.

よく使う MySQLコマンド
コマンド 実行内容
use データベース名; デフォルトで使用するデータベースの指定
show databases; データベースの表示
show tables; テーブルの表示
drop database データベース名; データベースの削除
select user,host from mysql.user; ユーザー名とホスト名の表示
select user(); ユーザー情報(whoami)
create user 'ユーザー名'@'ホスト名' identified by 'パスワード'; ユーザーの作成

コマンド使用例

  • 文字コード(utf8)を指定して,データベース(mydb)の作成.文字コードが EUC-JP の場合は,ujis とします.文字コードは,コマンド「show character set;」で調べることができます.
    mysql> create database mydb character set utf8;
  • データベース(mydb)の中のテーブルのコピー.新規にテーブル(tab2)を作成し,コピー元のテーブル(tab1)の内容を追加(insert)します.
    	  mysql> use mydb;
    	  mysql> create table tab2 like tab1;
    	  mysql> insert into tab2 select * from tab1;
  • データベース(mydb)の全てのテーブルに対して,全ての権限を持つ,ユーザー(ユーザー名:hoge,パスワード:fugafuga)の追加.
    mysql> grant all privileges on mydb.* to hoge@localhost identified by 'fugafuga';
  • データベース(mydb)の作成情報表示.文字コードなどが分かります.これは,データベース(mydb)を作成するための「create database」文を表示しています.
    mysql> show create database mydb;
  • 使用可能な文字コードの一覧の表示.
    mysql> show character set;
  • テーブル(mytb)の作成.
    	  mysql> create table mytb(
    	          -> id smallint(6) not null primary key auto_increment,
    	          -> time datetime not null,
    	          -> title varchar(255) not null,
    	          -> comment text not null,
    	          -> url varchar(255)
    	          -> );
  • テーブル(mytb)の構造の表示.
    mysql> show fields from mytb;

ページ作成情報

参考資料

  1. root のパスワードの設定は,「MySQLのrootパスワードを設定 - Linux環境」を参考にしました.

更新履歴

2019年09月06日 ページの新規作成


no counter