Mysql-administration

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

MySQL-管理

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: ******

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

MySQLに新しいユーザーを追加するには、データベース 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 )のパスワード zara123 でユーザー zara を追加します。

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

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

管理用MySQLコマンド

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

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

次の章では、MySQLでのPHP構文の使用方法について説明します。