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

推薦する

Vueテクノロジーに基づく再帰コンポーネントの実装方法

説明するこの記事では、Vue テクノロジーに基づいて再帰コンポーネントを実装する方法を紹介します。 ...

Linux でファイル内の特定の文字の数を数える方法

ファイル内の文字列の数を数えることは、実際には砂の中の石を探すようなものです。ある人は、石を見た後に...

HTMLページの読み込みと解析プロセスの詳細な紹介

ブラウザがHTMLを読み込みレンダリングする順序1. IE は上から下へダウンロードし、上から下へレ...

MySQL ビューの原理と使用法の詳細な分析

序文: MySQL では、ビューはおそらく最も一般的に使用されるデータベース オブジェクトの 1 つ...

Ubuntu 18.04にPython仮想環境をインストールする

Ubuntu 18.04 を使用する Python 開発者向けの参考資料です。 1. Ubuntu ...

Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...

データベース復旧エラーの原因となる MySQL 文字セットの簡単な分析

MySQL の文字セットエンコーディングが正しくないデータをインポートすると、エラーが表示されます。...

Element-UIの10の驚くべきトリックのまとめ

目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...

CSS のサイズ単位についての簡単な説明

ブラウザの互換性はどんどん良くなってきています。モバイル端末は基本的にすべてWebKitベースです。...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...

base target="" はリンクのターゲットオープンフレームを制御します

<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...

mysql 5.7.11 winx64 初期パスワード変更

公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...

cmd と python での MySQL の一般的な操作についての簡単な説明

環境設定1: MySQLをインストールし、MySQLのbinディレクトリを環境変数に追加する環境設定...

HTMLポップアップdivはモバイルの中央揃えを実現するのに非常に便利です

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Dockerfile を使用して nginx イメージを構築する例

Dockerfile の紹介Docker は、Dockerfile の内容を読み取ってイメージを自動...