質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

16886閲覧

MySQLのrootに入れません

Espeon

総合スコア12

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1グッド

1クリップ

投稿2018/09/10 02:24

編集2018/09/10 02:31

前提・実現したいこと

MySQLのパスワードの再設定がしたいです.

発生している問題・エラーメッセージ

プログラミング初心者ですが,書籍「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」に沿って,初めてAWSを触っています.その中で,サーバにMySQLを導入するのですが行き詰まっています.
具体的には,MySQLをインストール後,rootに入ることができません.

環境

EC2

  • WebServer:

Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-08847abae18baa040

  • DBServer(WebServerからsshでアクセスし,MySQLをインストールする):

Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-08847abae18baa040

MySQL

  • Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper

試したこと

1.初期パスワードの取得
初期設定でパスワードが予め設定されているとのことで,

$ grep -e 'A temporary password is generated for root@localhost' /var/log/mysqld.log

を打って初期パスワードを取得することはできましたが,

$ mysql_secure_installation Securing the MySQL server deployment. Enter password for user root:

の場面でこれを入力しても

Error: Access denied for user 'root'@'localhost' (using password: YES)

と弾かれます.

2.--skip-grant-tablesでのstart
パスワードを忘れた時の対処法を調べると,--skip-grant-tablesオプションを使えばパスワードなしで入れるとのこと.しかし

$ sudo service mysqld start --skip-grant-tables

と打つと

Redirecting to /bin/systemctl start --skip-grant-tables mysqld.service /bin/systemctl: unrecognized option '--skip-grant-tables'

となって上手くいきません.

3.MySQLのアンインストール
もう一度インストールからやり直そうと思いましたが,アンインストールするにはrootに入らなければならず,出来ませんでした.

どうしたらいいのでしょうか,よろしくお願いします.

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/09/10 02:26

質問編集画面タイトル横にある「初心者アイコン」をご活用ください。「初心者」と質問で書くよりも伝わりますし、質問一覧に表示されるのでわかりやすくなります。
guest

回答2

0

とりあえず...

2.--skip-grant-tablesでのstart

だけ回答します。

これは、 service mysqld のコマンドラインで、使うオプションではありません。

  1. MySQL が起動中の場合は、sudo service mysqld stop で停止させる。
  2. sudo mysqld_safe --skip-grant-tables & で、サーバを起動する。
  3. mysql コマンドで接続して、パスワードを変更する。
  4. 起動中の MySQL を終了させる。
  5. sudo service mysqld start で、通常通り MySQL を起動させる。

の手順です。

投稿2018/09/10 03:02

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Espeon

2018/09/11 15:23 編集

回答ありがとうございます. しかし,`sudo mysqld_safe --skip-grant-tables &` と入力すると ```$ sudo: mysqld_safe: コマンドが見つかりません```と返ってきます. 入力は続行出来るのでここで```mysql```を入力すると, ```ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [1]+ 終了 1 sudo mysqld_safe --skip-grant-tables``` と返ってきます. ```ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)``` はmysqlを再起動すると解決すると調べて出てきましたが, ```sudo service mysqld start```と```sudo service mysqld stop```をしてからもう一度トライしても出てしまいます... ```sudo service mysqld start```と入力すると```Redirecting to /bin/systemctl start mysqld.service```, ```sudo service mysqld stop```と入力すると```Redirecting to /bin/systemctl stop mysqld.service```と返ってくるのですが, ここですでにおかしいというのはありますか?
Espeon

2018/09/11 15:26

文章中のコードが上手く埋め込めません,申し訳ないです...
CHERRY

2018/09/12 04:30

すいません。おそくなりました。 エラーメッセージからすると mysqld_safe のコマンドが見つからないようです。 MySQL は、どのようにインストールされましたか? 通常は、このあたりにあると思うのですが... /usr/bin/mysqld_safe もしかするとこっちかなぁ... /usr/local/bin/mysqld_safe /usr/local/mysql/bin/mysqld_safe 見つかったら sudo /usr/local/mysql/bin/mysqld_safe のように降るパスを指定して実行してください。
guest

0

自己解決

結局EC2インスタンスを作り直して再度MySQLをインストールしました.作り直してからあれこれ試したのではっきりとはわかりませんが,EC2のOSのバージョンとレポジトリのOSのバージョンが合っていなかったのかもしれません(el7はOKだから前回はel6を使っていたのかも).http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpmでは何とかrootで入れました.

インストール

$ sudo yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm $ sudo yum -y install -y install mysql-community-server

初期パスワード取得

$ grep -e 'A temporary password is generated for root@localhost' /var/log/mysqld.log

パスワード変更.今回は初期パスワードでちゃんと通りました.

$ mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: The existing password for the user account root has expired. Please set a new password. New password:

しかし,パスワードを入力せずにパスワードを変更するためmysqld_safeを試すもまたダメ

$ sudo mysqld_safe --skip-grant-tables & [1] 3710 $ sudo: mysqld_safe: コマンドが見つかりません

そこで https://teratail.com/questions/53026 を試したら無事パスワードを変更出来ました(前回も試したがダメだった).

結局何が原因かはうやむやになってしまいましたが,本やサイトのコード丸写しではなく,バージョンやコマンドをちゃんと調べないといけないなーと痛感しました.回答ありがとうございました.

投稿2018/09/18 05:25

Espeon

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問