Windows10 MySQL(MySQL Serverのbin)のパスを環境変数に追加していないときのmysqldumpとかでアクセスが拒否されました。

だいぶハマりました。MySQLのbinまでのパスを通さないことってありますよね?

2.3.5.6 MySQL ツールの PATH をカスタマイズする

MySQL プログラムの起動を簡単にするために、MySQL の bin ディレクトリのパス名を Windows システムの PATH 環境変数に追加できます。

MySQL bin ディレクトリの完全なパス名を入力します (C:\Program Files\MySQL\MySQL Server 5.6\bin など)。

システムのどのディレクトリからでも、DOS プロンプトにパスを指定せずに MySQL の実行プログラム名を入力して、すべての MySQL 実行プログラムを呼び出すことができます。これにはサーバー、mysql クライアント、および mysqladmin と mysqldump などのすべての MySQL コマンド行ユーティリティーが含まれています。

同じマシンで複数の MySQL サーバーを動作させている場合には、MySQL bin ディレクトリを Windows PATH に追加しないでください。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.3.5.6 MySQL ツールの PATH をカスタマイズする

環境変数MySQL Serverのbinまでのpathを追加すると、どのディレクトリからでもmysql関連のコマンドが実行できるっぽいですね。

パスが通ってなければ、MySQL Serverのbinまでディレクトリを移動しておけば良いんでしょ?って思ってました。

わしもじゃ、わしもじゃ、みんな。

mysqldumpでアクセスが拒否されました。

コマンドプロンプトを起動して...mysqldumpを実行

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mysqldump -u root -p sample > C:¥¥sample.sql    

f:id:ts0818:20171020204100p:plain

はい、エラー!

どうやら、コマンドプロンプトを『管理者権限』で実行すればいけるみたいです。

f:id:ts0818:20171020204756p:plain

管理者権限でコマンドプロンプトを起動したらば、

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mysqldump -u root -p sample > C:¥¥sample.sql

⇩ mysqldumpいろいろオプションがありそうですが、上のコマンドの意味です。

mysqldump -u [ユーザー名] -p [データベース名] > [出力するファイル名(パス)]

f:id:ts0818:20171020204814p:plain

sqlファイルができています。 

f:id:ts0818:20171020205532p:plain

一時的にパスを通す方法

MySQL Serverのbinまでのパスを通せば、ディレクトリを移動せずにmysqldumpできます。

set PATH=%PATH%;C:\Program Files\MySQL\MySQL Server 5.7\bin

f:id:ts0818:20171020210013p:plain

 

MySQLで対象のデータベースをバックアップ!そしてリストアの行く末密かに暗示する人Honey!! - SUMMER_WARSの日記

 

アクセスが拒否されました。って?

アクセスが拒否されました。とかよく分からんですね~。

「アクセスが拒否されました」というメッセージの原因は、権限を超えた操作を行ったことによります。

権限には、管理者とユーザがあります。

通常、ユーザに操作が許されているのは、C:\Users\ユーザ名以下の階層のフォルダです。Users フォルダがあるような Cドライブ直下のフォルダでの操作は許されていません。

「アクセスが拒否されました」のメッセージが表示される | Snagimo

なるほど、たしかに、普通にコマンドプロンプトを起動すると、カレントディレクトリは、「C:¥Users¥ユーザー名」になっていますね。

f:id:ts0818:20171020211407j:plain

Cドライブ直下のProgram FilesフォルダにインストールされたMySQL(C:¥Program Files¥MySQL¥MySQL Server 5.7¥bin)を、ユーザーの権限のコマンドプロンプトで利用しようとして『アクセスが拒否されました』ってなってたわけですね。

 

う~ん、Windowsもムズイっすね。