mySQLに絶対正しいはずのコマンド打ち込んだのにエラーになった原因
AWSの学習中、下記のような現象が発生しました。
事象:mySQLに接続しようとしたら何故かエラーが返ってきた
[ ~]$ mysql -h "DBサーバIP" -u root -p
Enter password:
ERROR 2005 (HY000): Unknown MySQL server host '"DBサーバIP" -u' (0)
注)DBサーバIP:mySQLをインストールしたサーバのIPアドレス
「なんでだ?」と思ってコマンドの文法をよく確認して再度入力。
[ ~]$ mysql -h "DBサーバIP" -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
今度は通った…何??
原因:Windows上のテキストファイルからコマンドをコピーしてきたから
このとき、私のサーバへの接続環境は下記のような感じでした。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Windows Desktop PC]
┃(↓SSHで接続済)
┃(↓mySQLに接続するためのコマンド発射)
[AWSで作ったDBサーバ](仮想・OSはLinux・mySQLインストール済)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
この時、コマンドを打ち間違えないように
お手本サイトからDLしておいたコマンドリスト(.txt)を
Windows上のVisualCodeで開いてコピー。
Puttyを使ってWebサーバに接続し、コマンドをコピー&ペーストしました。
これのせいでした。
※後日補足※
これだけじゃ何が原因か分からないですね。
多分文字コードとかのせいじゃないかと思われます。
ただし、これがSSH接続に使用したPuttyの仕様のせいなのか、
WindowsからLinuxに接続したからなのか、
mySQLを使う時だけ発生するのか、といった細かい切り分けはしていません。
Webサーバを操作する際、これら以外のlinuxコマンドはコピペで行けてたので、
mySQL側の問題なのかもしれません。
対策:明らかに正しいコマンドをコピペして失敗したら、一度手打ちしてみよう!
また何か分かったら追記したいと思います。