mysql の認証、起動、およびサービスの起動のための一般的なコマンド

mysql の認証、起動、およびサービスの起動のための一般的なコマンド

1. 4つの起動方法:

1.mysqld

MySQL サーバーを起動します: ./mysqld --defaults-file=/etc/my.cnf --user=root
クライアント接続: mysql --defaults-file=/etc/my.cnf または mysql -S /tmp/mysql.sock

2.mysqld_safe

MySQLサーバーを起動します: ./mysqld_safe --defaults-file=/etc/my.cnf --user=root &
クライアント接続: mysql --defaults-file=/etc/my.cnf または mysql -S /tm/mysql.sock

3.mysql.サーバー

cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/
chkconfig --add mysql.server
mysql サーバーを起動します: service mysql.server {start|stop|restart|reload|force-reload|status}
クライアント接続: 1および2と同じ

4.mysqld_マルチ

mkdir $MYSQL_BASE/data2
cat <<-EOF>> /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /user/local/mysql/bin/mysqladmin
ユーザー = mysqladmin
パスワード = mysqladmin

[mysqld3306]
ポート = 3306
ソケット = /tmp/mysql3306.sock
pid ファイル = /tmp/mysql3306.pid
外部ロックをスキップ
キーバッファサイズ = 16M
最大許容パケット = 1M
テーブルオープンキャッシュ = 64
ソートバッファサイズ = 512K
ネットバッファ長 = 8K
読み取りバッファサイズ = 256K
読み取りバッファサイズ = 512K
myisam_sort_buffer_size = 8M
ベースディレクトリ = /usr/local/mysql
データディレクトリ = /usr/local/mysql/data

[mysqld3307]
ポート = 3307
ソケット = /tmp/mysql3307.sock
pid ファイル = /tmp/mysql3307.pid
外部ロックをスキップ
キーバッファサイズ = 16M
最大許容パケット = 1M
テーブルオープンキャッシュ = 64
ソートバッファサイズ = 512K
ネットバッファ長 = 8K
読み取りバッファサイズ = 256K
読み取りバッファサイズ = 512K
myisam_sort_buffer_size = 8M
ベースディレクトリ = /usr/local/mysql
データディレクトリ = /usr/local/mysql/data2
終了

#mysql -S /tmp/mysql3306.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' ('mysqladmin' によって識別、GRANT オプション付き)。

#mysql -S /tmp/mysql3307.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' ('mysqladmin' によって識別、GRANT オプション付き)。

mysql サーバーを起動します: ./mysqld_multi --defaults-file=/etc/my.cnf start 3306-3307
MySQLサーバーをシャットダウンします: mysqladmin shut down

2. mysqlサービスを開始および停止する

1. Windowsの場合:

開始: mysqld --console または net start mysql
シャットダウン: mysqladmin -u root shutdown または net stop mysql

Linuxの場合:

開始: service mysql start
停止: サービス mysql 停止
サービスを再起動します: service mysql restart

3. 権限を割り当てるユーザーを作成する

1. 新しいユーザーを作成します。名前: buff、パスワード: buff のユーザーを作成します。

//rootユーザーがMySQLにログインする
mysql -uroot -p
パスワードを入力してください:
//新しいユーザーを作成しますmysql>insert into mysql.user(Host,User,Password) values("localhost","buff",password("buff"));
// システム権限テーブルを更新します。mysql>flush privileges;

ログインテスト

mysql>終了
// ユーザー buff が MySQL にログインします
mysql -ubuff -p
パスワードを入力してください:
マイSQL>
// 新しく作成されたユーザー バフが正常にログインしたことを示します

ユーザー認証

//rootユーザーがMySQLにログインする
mysql -uroot -p
パスワードを入力してください:
// ユーザー buff のデータベース bluebuff を作成する
mysql>データベースbluebuffを作成します。
// ユーザー buff にデータベース bluebuff のすべての権限を許可する mysql>grant all privileges on bluebuff.* to buff@localhost identified by 'buff';
mysql>権限をフラッシュします。

ログインテスト

// ユーザー buff がデータベースにログインします mysql -ubuff -p
権限を入力してください:
// データベースを表示しますmysql>show databases;

結果は下の図に示されており、ユーザーバフの認証が成功したことを示しています。

5. ユーザーbuffのパスワードを変更する

//rootユーザーがMySQLにログインする
mysql -uroot -p
パスワードを入力してください:
// ユーザー buff のパスワードを変更します。mysql>update table mysql.user set password=password('buffer') where User='buff' and Host='localhost';
mysql>権限をフラッシュします。

6. ユーザーの削除

//rootユーザーがMySQLにログインする
mysql -uroot -p
パスワードを入力してください:
// ユーザーバフを削除する
mysql>User = 'buff'、Host = 'localhost' の場合、mysql.user から削除します。
mysql>権限をフラッシュします。

7. データベースを削除する

mysql>データベースbluebuffを削除します。

4. ユーザーに付与された権限を表示する

MySQL では、ユーザーに付与される権限は、グローバル レベルの権限、データベース レベルの権限、テーブル レベルの権限、列レベルの権限、およびサブルーチン レベルの権限に分けられます。

1. グローバルレベル:

グローバル権限は、特定のサーバー内のすべてのデータベースに適用されます。これらの権限は mysql.user テーブルに保存されます。 GRANT ALL ON *.* および REVOKE ALL ON *.* は、グローバル権限のみを付与および取り消します。

例: a. テスト アカウント test を作成し、グローバル権限を付与します。mysql> grant select,insert on *.* to test@'%' identified by 'test';
mysql> 権限をフラッシュします。

b. テストに付与された権限を照会します: show grants for test;
mysql.user から * を選択して、user='test'\G を指定します。

2. データベースレベル:

データベース権限は、特定のデータベース内のすべてのオブジェクトに適用されます。これらの権限は、mysql.db および mysql.host テーブルに保存されます。 GRANT ALL ON db_name.* および REVOKE ALL ON db_name.* は、データベース権限の付与と取り消しのみを行います。例: a. テスト アカウント test を作成し、データベース レベルの権限を付与します。drop user test;
MyDB.* に対する select、insert、update、delete 権限を、'test' で識別される te​​st@'%' に付与します。

b. テストに付与された権限を照会します。select * from mysql.user where user='test'\G; -- 権限がないことがわかります。select * from mysql.db where user='test'\G;
テストの許可を表示します。

3. テーブルレベル:

テーブル権限は、特定のテーブル内のすべての列に適用されます。これらの権限は、mysql.tables_priv テーブルに保存されます。 GRANT ALL ON db_name.tbl_name および REVOKE ALL ON db_name.tbl_name は、テーブル権限のみを付与および取り消します。

例: a. テスト アカウント test を作成し、テーブル レベルの権限を付与します。drop user test;
権限をフラッシュします。
MyDB.kkk のすべての権限を 'test' で識別される te​​st@'%' に付与します。

b. テストに付与された権限を照会します: show grants for test;
 mysql.tables_priv\G から * を選択します。

4. 列レベル:

列の権限は、特定のテーブル内の単一の列に適用されます。これらの権限は、mysql.columns_priv テーブルに保存されます。 REVOKE を使用する場合は、付与される列と同じ列を指定する必要があります。

例: a. テスト アカウント test を作成し、列レベルの権限を付与します。drop user test;
権限をフラッシュします。
MyDB.TEST1 に対する select (id, col1) を、'test' で識別される te​​st@'%' に許可します。
権限をフラッシュします。

b. テストに付与された権限を照会します。select * from mysql.columns_priv;
テストの許可を表示します。

5. サブルーチンレベル:

CREATE ROUTINE、ALTER ROUTINE、EXECUTE、および GRANT 権限は、ストアド ルーチンに適用されます。これらの権限は、グローバル レベルまたはデータベース レベルで付与できます。また、CREATE ROUTINE を除き、これらの権限はサブプログラム レベルで付与でき、mysql.procs_priv テーブルに格納されます。

例: a. テスト アカウント test を作成し、サブルーチン レベルの権限を付与します DROP PROCEDURE IF EXISTS PRC_TEST;
区切り文字 //
プロシージャ PRC_TEST() を作成します。
-> 開始
-> kkk から * を選択;
-> 終了 // 
区切り文字 ;
'test' で識別される te​​st@'%' に MyDB.PRC_TEST の実行を許可します。

権限をフラッシュします。

b. テストに付与された権限を照会します: show grants for test;
User='test' の場合、mysql.procs_priv から * を選択します。

要約:

1. ユーザーに付与された権限を表示する必要がある場合は、これらの 5 つのレベルから付与された権限を表示する必要があります。上から下へ、または小さいレベルから大きいレベルへ、各レベルに付与されている権限を 1 つずつ確認します。

2. ルーチンの作成、ルーチンの変更、選択、作成、挿入、更新、削除、実行などの権限を付与します。

3. クライアントがサーバーに接続できない場合は、ユーザー テーブル内のホスト項目が '%' であり、承認されているかどうかを確認します。

以下もご興味があるかもしれません:
  • mysqlサービスが起動しない場合の解決策
  • MySQL を起動できない場合のよくある問題の概要
  • MySQL5 インストール後に起動できない(サービスを開始できない)問題の解決方法まとめ
  • CentOS 7 での MySQL サービスの起動失敗に対する簡単な解決策
  • MySQL 起動エラー 1053 の解決方法
  • Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策
  • エラー 1067 で MySQL が起動しない問題を解決する方法
  • MySQLスタートアップが起こした事故の実録

<<:  LinuxシステムのAnsible自動運用保守導入方法

>>:  Nginx 転送ソケットポート設定の詳細な説明

推薦する

MySQL ストアド プロシージャと共通関数のコード分析

mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...

Windows Server 2019 のインストール (グラフィカル チュートリアル)

Windows Server 2019 は、Microsoft が公式にリリースした最新のサーバー...

CentOS 7.5 に Docker をインストールする詳細なチュートリアル

Docker入門Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテ...

HTM と HTML の違いは何ですか? HTM と HTML の違いは何ですか?

Web デザインを学習する過程で、html と htm の関係など、遭遇した多くの問題について深く...

リストループスクロールを実現するための HTML+CSS+JavaScript サンプルコード

説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

PostgreSQL マテリアライズドビュープロセス分析

この記事は主にPostgreSQLマテリアライズドビューのプロセス分析について紹介します。サンプルコ...

MySQL コード実行構造例の分析 [シーケンス、分岐、ループ構造]

この記事では、例を使用して MySQL コード実行構造について説明します。ご参考までに、詳細は以下の...

MySQL での一時テーブルの使用例

ここ2日間ちょっと忙しくて、公式アカウントも数日更新が止まってしまいました。その結果、何人かの読者か...

MySQL実践ウィンドウ関数SQL分析クラスの生徒のテストの成績と生活費

目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

ウェブデザインにおけるグリッドシステム

グリッドシステムの形成1692年、新しく即位したフランス国王ルイ14世は、フランスの印刷技術のレベル...

Vue データ内のプロパティをランダムに変更すると、ビューは更新されますか?

インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...