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

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

ただいまの
回答率

90.00%

mysql5.7.11 起動ログについて

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 12K+

kumakumatan

score 161

CentOS6.5/MysqlServer5.7.11

にて、mysqlを起動させる際、起動自体はできるのですが、「mysql_error.log」にて
以下2行のエラー出力が表示されてしまいます。

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist

そのエラー内容を調べてみると、「 mysql_upgrade -u root -p」と入力してアップグレードしなさい
というサイトを見つけて試みたのですが、「1146:Table 'mysql.plugin' doesn't exit」と表示されて、アップグレードできませんでした。

このログエラーを回避するにはどうしたらよろしいいでしょうか?
またこのエラーを回避しないとどのような影響がありますでしょうか?

ご教授、宜しくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ogaaaan

    2016/03/10 17:51

    『1146:Table 'mysql.plugin' doesn't exit』←これの意味はしらべたのかな?
    自分でできることはやっておかないと誰も答えてくれないよ。

    キャンセル

  • 退会済みユーザー

    2016/03/10 17:51

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • dupont_kedama

    2016/03/11 11:56

    バージョンアップをしているなら、「前のバージョン」「バージョンアップ(インストール)手順」を書いた方がいいです。
    あと、現在のmysqldの起動オプションも記載してください。

    キャンセル

回答 2

+2

あらぬ方向に進んでしまうことがないよう、一応別で回答します。

この質問はmy.cnfの設定についての続きですよね?
その回答の中で「旧バージョンのデータを引き継いでますか?そうだとして「mysql_upgrade」をしてますか? 」と書きました。
今回は旧バージョンのデータを引き継ぐために「mysql_upgrade」をしようとされたと考えます。
(その前提にないならそもそもmysql_upgradeをする必要はありません。)

「mysql_install_db」は初期化する(初期データと初期ユーザーを作るなど)ためのコマンドであり、旧データを(ディレクトリごと)引き継ぐ場合は不要です。
なおMySQL5.7では「mysql_install_db」は非推奨であり、「mysqld --initialize」を使うべきです。
2.10.1.1 Initializing the Data Directory Manually Using mysqld

先ほど初期化されたデータに対して「mysql_upgrade」していますが、これは意味がありません。
すでに5.7に最適化されているからです。

さて、当初発生していた「Table 'mysql.plugin' doesn't exit」は「mysqlスキーマのpluginテーブルが見つかりません」という意味です。このテーブルは(ものすごく古いバージョンにはなかったかもしれませんが、)MySQL5.5にはすでにありました。
「mysql_upgrade」コマンドがそのテーブルを見つけられなかった理由は、情報が不足していてわかりません。
(前のバージョンはなんなのか、前のバージョンはアンインストール済なのか、「mysql_upgrade」は正しいmy.cnfを見ているのか、などなど。)
なので情報の追加依頼を書きました。
MySQL5.7をインストールするときに参考にしたサイト・資料などあればそれも提示された方がよいかと思います。

「mysql.plugin」はファイルとしては存在しないのでしょうか?

少なくとも /データディレクトリ/mysql/plugin.frm などがあるはずです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/11 14:47

    ありがとうございます!
    大変勉強になりました

    キャンセル

  • 2016/03/14 09:28

    コメントありがとうございます。旧バージョンが入ってはいないかと思いますが、
    参考サイト
    http://blog.ybbo.net/2015/03/11/how-to-install-mysql5-7-to-centos6-using-yum/
    http://qiita.com/ShuM/items/1a960b4ef53f8a08dd5a
    を参考にして、
    yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
    yum install yum-utils
    yum-config-manager --disable mysql56-community
    yum-config-manager --enable mysql57-community-dmr
    yum install mysql mysql-devel mysql-server mysql-utilities
    rpm -qa|grep mysql
    mysql --version
    にてインストールしました。
    もう一度、DBを空にして、「mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql」を実施した方がよろしいでしょうか?

    宜しくお願いします。

    キャンセル

  • 2016/03/14 09:48

    「旧データを引き継ぐ」のではないのですね?
    であれば一度「mysql_install_db」をしているのでそのまま使って問題ないと思います。

    キャンセル

  • 2016/03/14 11:22

    ありがとうございました。
    大変勉強になりました。

    キャンセル

checkベストアンサー

0

データベースは初期化したのですか?

初期化Shell
mysql_install_db --datadir=/var/lib/mysql --user=mysql

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/11 13:52

    アップグレードだったんですね…笑

    問題なくアップグレードされたと思います。
    バージョン確認
    mysql> SELECT version();

    mysql.pluginは「データベース名.テーブル名」だと思いますが

    mysqlデータベースの中にpluginテーブルはないのでしょうか?

    mysql> use mysql;
    mysql> show tables;

    キャンセル

  • 2016/03/11 14:44

    ご回答ありがとうございます。
    確認できました。
    起動ログを確認したところ、「[ERROR] SSL error: Unable to get certificate from 'server-cert.pem'」
    MySQLデータベースとの通信をSSL暗号化する設定がない為でしょうか?必要がなければ、無視してもいいのでしょうか?
    この設定は一般的には必要なのでしょうか。WEBサーバからの通信のみであれば無視してもいいものでしょうか?

    宜しくお願いします。

    キャンセル

  • 2016/03/11 15:01

    >MySQLデータベースとの通信をSSL暗号化する設定がない為でしょうか?
    はい。そうです。

    個人的な意見になりますが…
    MySqlサーバとやり取りするところが(WEBサーバ、レプリケーション等)
    内部IPもしくはローカルでの接続になっているのであれば不要かと思います。

    ほかの方の意見も併せてご確認いただければと思います。

    キャンセル

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

  • ただいまの回答率 90.00%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る