私の環境は次のとおりです。centos7 + mysql5.7.26、今日mysqldumpslowコマンドを使用して、スロークエリログを見て、次のエラー
[root@localhost ~]# mysqldumpslow -t 1
Can't determine basedir from 'my_print_defaults mysqld' output: --server-id=1
--port=3306
--character_set_server=utf8
--collation-server=utf8_general_ci
--lower_case_table_names=1
...省略
翻訳手段:、MySQLをインストール決まったBASEDIRパラメータが存在しないための理由がある、MySQLはのインストールパス「my_print_defaultsは、mysqldの」出力からのbasedir(MySQLインストールディレクトリ)を決定することができません。
インターネットからいくつかの方法を見つけるためにmysql_install_dbのコマンドを実行する必要があります
mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
そこ環境変数を変更する必要がある、というように。
私は今、MySQLのrpmパッケージがインストールされて実行されるため、インストール時にインストールディレクトリが自動的にデータベースディレクトリを割り当てられ、ビンディレクトリはすべて集中せず、分散している、上記の解決策は、適切な最後の瞬間を参照してくださいされていませんこの記事の解決策、MySQLが遅いエラーを照会:缶の決定ではない「my_priからのbasedirスロークエリログファイル名を持つ前のコマンドでは、この問題が解決されます。
[root@localhost ~]# mysqldumpslow -t 5 /var/lib/mysql/localhost-slow.log
Reading mysql slow query log from /var/lib/mysql/localhost-slow.log
Count: 2 Time=0.08s (0s) Lock=0.00s (0s) Rows=14.0 (28), root[root]@localhost
show databases
Count: 8 Time=0.01s (0s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
Count: 2 Time=0.01s (0s) Lock=0.00s (0s) Rows=1.0 (2), root[root]@localhost
show variables like 'S'
スロークエリログファイルのアドレスを持たないmysqldumpslow最後のコマンドは、デフォルトの設定からMySQLのスロークエリログファイルのアドレスを読み取ると、スロークエリログアドレスを決定するための最初のステップは、間違いなく決定のmysqlで生じるこの問題の原因を分析します私は、インストール時に設定されていなかったため、ソフトウェアのインストールパスは、ので、上記の問題が発生します。