Mysqli-administration

提供:Dev Guides
移動先:案内検索

MySQLi-管理

MySQLiサーバーの実行とシャットダウン

MySQLiはMySQLから拡張されているため、まずMySQLサーバーが実行されているかどうかを確認します。 これを確認するには、次のコマンドを使用できます-

ps -ef | grep mysqld

MySqlが実行されている場合、結果に mysqld プロセスがリストされます。 サーバーが実行されていない場合は、次のコマンドを使用して起動できます。

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

今、すでに実行中のMySQLサーバーをシャットダウンしたい場合は、次のコマンドを使用してそれを行うことができます-

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

MySQLiユーザーアカウントの設定

MySQLの改良バージョンであるMySQLiに新しいユーザーを追加するには、データベース mysqluser テーブルに新しいエントリを追加するだけです。

以下は、パスワード guest123 を使用してSELECT、INSERT、およびUPDATE権限を持つ新しいユーザー guest を追加する例です。 SQLクエリは-

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user (
   host, user, password, select_priv, insert_priv, update_priv)
   VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');

Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (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()関数を使用して新しいパスワードを暗号化することを忘れないでください。 上記の例でわかるように、パスワードmypassは6f8c114b58f2ce9eに暗号化されています。

FLUSH PRIVILEGESステートメントに注目してください。 これは、サーバーに許可テーブルを再ロードするように指示します。 使用しない場合、少なくともサーバーが再起動されるまで、新しいユーザーアカウントを使用してmysqlに接続することはできません。

また、INSERTクエリの実行時にユーザーテーブルの次の列の値を「Y」に設定することにより、新しいユーザーに他の特権を指定することも、UPDATEクエリを使用して後で更新することもできます。

  • 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

ユーザーアカウントを追加する別の方法は、GRANT SQLコマンドを使用することです。次の例では、 TUTORIALS という特定のデータベースのユーザー zara をパスワード zara123 で追加します。

root@host# mysql -u root -p password;
Enter password:*******
mysql> use mysql;
Database changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
   -> ON TUTORIALS.*
   -> TO 'zara'@'localhost'
   -> IDENTIFIED BY 'zara123';

これにより、 user というmysqlデータベーステーブルにエントリが作成されます。

-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

ここでは、エラーログ用に別のディレクトリを指定できます。指定しない場合、このテーブルのエントリを変更しないでください。

管理MySQLiコマンド

ここに重要なMySQLiコマンドのリストがあります。MySQLデータベースを操作するために時々使用します-

  • USE Databasename -これは、MySQLiワークエリアで特定のデータベースを選択するために使用されます。
  • SHOW DATABASES -MySQLi DBMSからアクセス可能なデータベースを一覧表示します。
  • SHOW TABLES -useコマンドでデータベースが選択されると、データベース内のテーブルを表示します。
  • SHOW COLUMNS FROM tablename -属性、属性のタイプ、キー情報、NULLが許可されるかどうか、デフォルト、およびテーブルの他の情報を表示します。
  • SHOW INDEX FROM tablename -PRIMARY KEYを含む、テーブル上のすべてのインデックスの詳細を表示します。
  • SHOW TABLE STATUS LIKE tablename \ G -MySQLi DBMSのパフォーマンスと統計の詳細を報告します。