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に新しいユーザーを追加するには、に新しいエントリを追加する必要があります。 user データベース内のテーブル mysql

以下は、新しいユーザーを追加する例です guest SELECT、INSERT、およびUPDATE権限とパスワード guest123; 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に暗号化されています。

FLUSHPRIVILEGESステートメントに注意してください。これは、許可テーブルを再ロードするようにサーバーに指示します。これを使用しない場合、少なくともサーバーが再起動されるまで、新しいユーザーアカウントを使用して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

ユーザーアカウントを追加する別の方法は、GRANTSQLコマンドを使用することです。次の例では、ユーザーを追加しますzara パスワード付き zara123 と呼ばれる特定のデータベースの場合 TUTORIALS

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';

これにより、mysqlデータベーステーブルに次のようなエントリも作成されます。 user

NOTE − SQLコマンドの最後にセミコロン(;)を指定するまで、MySQLはコマンドを終了しません。

/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 − MySQLiDBMSがアクセスできるデータベースを一覧表示します。

  • SHOW TABLES − useコマンドでデータベースが選択されると、データベース内のテーブルが表示されます。

  • SHOW COLUMNS FROM tablename −テーブルの属性、属性のタイプ、キー情報、NULLが許可されているかどうか、デフォルト、およびその他の情報を表示します。

  • SHOW INDEX FROM tablename − PRIMARY KEYを含む、テーブル上のすべてのインデックスの詳細を表示します。

  • SHOW TABLE STATUS LIKE tablename\G − MySQLiDBMSのパフォーマンスと統計の詳細を報告します。