English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL マネジメント

MySQLサーバーの起動および停止

Windowsシステム下

Windowsシステム下では、コマンドウィンドウ(cmd)を開き、MySQLのインストールディレクトリのbinディレクトリに移動します。

起動:

cd c:/mysql/bin
mysqld --console

停止:

cd c:/mysql/bin
mysqladmin -uroot shutdown

Linuxシステム下

まず、以下のコマンドを使用してMySQLサーバーが起動しているか確認する必要があります:

ps -ef | grep mysqld

MySqlが起動している場合、以下のコマンドはmysqlプロセスリストを出力します: mysqlが起動していない場合、以下のコマンドを使用してMySQLサーバーを起動できます:

root@host# cd /usr/bin
./mysqld_safe &

もし現在実行中のMySQLサーバーを停止したい場合は、以下のコマンドを実行できます:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

MySQLユーザー設定

MySQLユーザーを追加するには、mysqlデータベースのuserテーブルに新しいユーザーを追加するだけで十分です。

以下は、ユーザー名がguest、パスワードがguestのユーザーを追加する例です。123、SELECT、INSERTおよびUPDATE操作を実行する権限をユーザーに許可します:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
データベース変更
mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
クエリ成功, 1 行影響 (0.20 秒)
mysql> FLUSH PRIVILEGES;
クエリ成功, 1 行影響 (0.01 sec)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

ユーザーを追加する際には、MySQLが提供するPASSWORD()関数を使用してパスワードを暗号化してください。 上記の例では、ユーザーパスワードが暗号化された後の形式を見ることができます: 6f8c114b58f2ce9e.

注意:MySQL5.7 中でuserテーブルのpasswordがauthentication_string

注意:password()暗号化関数は、 8.0.11 中から削除されましたが、MD5()関数に置き換えることができます。

注意:注意が必要です FLUSH PRIVILEGES 文。 このコマンドを実行すると、認可テーブルが再読み込まれます。

このコマンドを使用しない場合、新しいユーザーでMySQLサーバーに接続することはできません。MySQLサーバーを再起動する以外の方法はありません。

ユーザーを作成する際に、ユーザーに権限を指定することができます。対応する権限列で、INSERT文に'Y'として設定することで、ユーザー権限リストは以下の通りです:

  • Select_priv

  • Insert_priv

  • Update_priv

  • Delete_priv

  • Create_priv

  • Drop_priv

  • Reload_priv

  • Shutdown_priv

  • Process_priv

  • File_priv

  • Grant_priv

  • References_priv

  • Index_priv

  • Alter_priv

ユーザーを追加するもう一つの方法は、SQLのGRANTコマンドを使用することです。以下のコマンドは、指定されたデータベースTUTORIALSにユーザーzaraを追加し、パスワードをzaraとします。123 。

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
データベース変更
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'zara'@'localhost'
    -> IDENTIFIED BY 'zara123';

以下のコマンドは、mysqlデータベースのuserテーブルにユーザー情報のレコードを作成します。

注意: MySQLのSQL文はセミコロン (;) で終了します。

/etc/my.cnfファイルの設定

一般的には、この設定ファイルを変更する必要はありません。デフォルトの設定は以下の通りです:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

設定ファイルでは、エラーログファイルが保存されるディレクトリを指定できます。一般的には、これらの設定を変更する必要はありません。

MySQLの管理コマンド

以下は、MySQLデータベースを使用する際によく使用されるコマンドの一覧です:

  • USE データベース名 :
    操作するMySQLデータベースを選択します。このコマンドを実行すると、すべてのMySQLコマンドはそのデータベースに対してのみ適用されます。

    mysql> use w3codebox;
    データベース変更
  • SHOW DATABASES:
    MySQLデータベース管理システムのデータベースリストを一覧表示します。

    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | w3codebox             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin |
    | test |
    | wecenter |
    | wordpress |
    +--------------------+
    10 rows in set (0.02 sec)
  • SHOW TABLES:
    指定データベースのすべてのテーブルを表示します。このコマンドを使用する前に、操作するデータベースを選択するために use コマンドを使用する必要があります。

    mysql> use w3codebox;
    データベース変更
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_w |3codebox |
    +------------------+
    | employee_tbl |
    | w3codebox_tbl |
    | tcount_tbl |
    +------------------+
    3 rows in set (0.00 sec)
  • SHOW COLUMNS FROM データベース:
    表示示数据表的属性,属性类型,主鍵情報,NULLの有無,デフォルト値などの情報。

    mysql> SHOW COLUMNS FROM w3codebox_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | w3codebox_id | int(11) | NO | PRI | NULL | |
    | w3codebox_title | varchar(255) | YES | | NULL | |
    | w3codebox_author | varchar(255) | YES | | NULL | |
    | submission_date | date | YES | | NULL | |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
  • SHOW INDEX FROM データベース:
    表示示数据表的详细索引信息,包括PRIMARY KEY(主鍵)。

    mysql> SHOW INDEX FROM w3codebox_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | w3codebox_tbl |          0 | PRIMARY  |            1 | w3codebox_id   | A         |           2 |     NULL | NULL   |       | BTREE      |         |               |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    このコマンドは、MySQL データベース管理システムのパフォーマンスおよび統計情報を出力します。

    mysql> SHOW TABLE STATUS  FROM w3codebox;   # データベース wを表示3codebox に含まれるすべてのテーブルの情報
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%';     # テーブル名がw3codeboxで始まるテーブルの情報
    mysql> SHOW TABLE STATUS from w3codebox LIKE 'w3codebox%'\G;   # \Gを追加して、結果は列でプリントされます