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

推薦する

HTML で margin:0 auto を使用するとページ全体が中央に配置されない問題の解決方法

今日、jsp ページを書きました。<div style="margin:0 auto...

Ubuntu ブート自動起動サービス設定

Ubuntu でサービスを作成し、自動的に起動する方法: 1. [/lib/systemd/syst...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

vue 動的コンポーネント

目次1. コンポーネント2. キープアライブ2.1 問題点2.2 キープアライブを使って解決する2....

HTML 終了タグの問題と W3C 標準

W3C の原則によれば、XML の各開始タグには対応する終了タグが必要です。つまり、<html...

MySQLクライアント認証後の接続失敗の問題に対する完璧なソリューション

MySQL 環境をローカル (192.168.1.152) にデプロイし、リモート クライアント 1...

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...

EChartsマルチチャート連携機能の実装プロセス

表示するデータが多い場合、1 つのチャートに表示しても効果はよくありません。このとき、2 つのチャー...

Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)

一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...

Vueコンポーネントの7つの通信方法についての深い理解

目次1. props/$emit導入コードサンプル2.Vスロット導入コードサンプル3.$refs/ ...

VMware Workstation 15 Pro インストール ガイド (初心者向け)

01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...

MySQL 結合バッファの原理

目次1. MySQL 結合バッファ2. JoinBufferCacheストレージスペースの割り当て3...

グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例

この記事では、MySQL group_concat を使用してグループ化されたフィールドを 1 つの...

HTML テーブルに複雑なテーブル ヘッダーを実装するためのサンプル コード

複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...

JavaScriptプロトタイプチェーンを理解する

目次1. プロトタイプとプロトタイプチェーンの平等関係を理解する2: プロトタイプとプロトタイプ チ...