Mysqli-administration
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に新しいユーザーを追加するには、データベース mysql の user テーブルに新しいエントリを追加するだけです。
以下は、パスワード 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のパフォーマンスと統計の詳細を報告します。