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 5.7 で my.ini ファイルが見つからない場合の解決策

my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...

webpackでCSSを分割・圧縮し、リンクでインポートする手順

まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...

MySQL の準同期レプリケーションについての簡単な説明

導入MySQL はレプリケーションを通じてストレージ システムの高可用性を実現します。現在、MySQ...

Linux カーネル デバイス ドライバー カーネル デバッグ テクニカル ノート集

/****************** * カーネルデバッグ技術 ****************...

Vue命令の動作原理と実装方法

Vue の紹介現在のビッグフロントエンドの時代は、混乱と衝突の時代です。世界は多くの派閥に分かれてお...

MySQL に大量のデータを挿入するときに重複データを除外する方法

目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...

Vuexの補助関数の使い方

目次マップ状態マップゲッターマップミューテーションマップアクション複数のモジュールマップ状態 ...

正の整数かどうかを判断するMYSQLカスタム関数の例コード

関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...

Linux システムのスワップ領域の紹介

スワップ スペースは、オペレーティング システムに関係なく、今日のコンピューティングの一般的な側面で...

Nodeはリクエスト追跡にasync_hooksモジュールを使用します

async_hooks モジュールは、Node.js バージョン 8.0.0 に正式に追加された実験...

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

MySQL の従来のソート、カスタム ソート、中国語のピンイン文字によるソート

MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...

mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...

Vue コンポーネント ライブラリ ElementUI はテーブル読み込みツリー データのチュートリアルを実装します

ElementUIは、参考のためにテーブルツリーリストの読み込みチュートリアルを実装しています。具体...

フロントエンドの状態管理(パート 1)

目次1. フロントエンドの状態管理とは何ですか? 2. ヴュークス3. バス4. ウェブストレージ序...