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のパフォーマンスと統計の詳細を報告します。