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 転送ソケットポート設定の詳細な説明

推薦する

Vue3におけるキーの役割と動作原理についての簡単な説明

このキー属性の機能は何ですか?まずは公式の説明を見てみましょう。 kekey 属性は主に、新しいノー...

Dockerを使用して外部からアクセス可能なMySQLを構築する詳細な説明

MySQL 8.0をインストールする docker run -p 63306:3306 -e MYS...

MySQLでorder byを使用せずにランキングを実装する3つの方法のまとめ

ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...

MySQL の遅いクエリとクエリ再構築方法の記録

序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...

JavaScript の条件付きアクセス属性と矢印関数の紹介

目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...

DockerでMongoDBコンテナをデプロイする方法

目次Dockerとは展開する1. イメージをプルする2. 画像を表示する3. コンテナを実行する4....

MySQL 8.0.15 インストール グラフィック チュートリアルとデータベースの基礎

MySQLソフトウェアのインストールとデータベースの基礎は参考用です。具体的な内容は次のとおりです。...

js 配列から重複を削除する 11 の方法

実際の業務や面接では、「配列の重複排除」の問題によく遭遇します。以下は、js を使用して実装された配...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux https://github.com/reactjs/...

Vue diffアルゴリズムの完全な分析

目次序文Vue 更新ビューパッチ同じVノードパッチVノード更新子供序文Vue は仮想 DOM を使用...

Linuxダイナミックリンクライブラリの使用

通常のプログラムと比較すると、ダイナミック リンク ライブラリにはメイン関数がなく、一連の関数の実装...

MySQL マルチテーブル共同クエリ操作例の分析

この記事では、MySQL のマルチテーブル共同クエリ操作について説明します。ご参考までに、詳細は以下...

ウェブサイトデザインにおいて非常に重要な概念であるdiv+floatの分析

ウェブサイトの構築では、HTML と CSS に関するさまざまな問題に常に遭遇します。ウェブサイト ...