CDH をインストールし、scm_prepare_database.sh を実行すると、エラー「java.sql.SQLException: ユーザー 'scm'@'localhost' のアクセスが拒否されました」が報告されます。

1. CDH をインストールしてエラーを報告する

CDH は Cloudera Distribution for Hadoop の略称で
、Cloudera が提供するエンタープライズ向けのオープンソース Hadoop エコシステム ソリューションのセットです。CDHは、Hadoop関連のさまざまなオープンソースプロジェクトやツールを統合し、これらのコンポーネントを一元管理・運用する機能を提供します。

CDH をインストールし、scm_prepare_database.sh を実行すると、エラー「java.sql.SQLException: ユーザー 'scm'@'localhost' のアクセスが拒否されました」が報告されます。

 /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm 123456

JAVA_HOME=/usr/lib/jvm/jre-openjdk
/etc/cloudera-scm-serverに書き込めることを確認する
/etc/cloudera-scm-server に SCM 構成ファイルを作成する 実行: /usr/lib/jvm/jre- openjdk/bin/java
-cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java。 jar:/opt/cloudera/cm/schema/…/lib/*
com.cloudera.enterprise.dbutil.DbCommandExecutor
/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db。火曜日 7 月 18 日
20:35:55 CST 2023 警告: サーバーの
ID 検証を行わずに SSL 接続を確立することはお勧めできません。MySQL 5.5.45以降によると、
5.6.26+ および 5.7.6+ の要件 明示的なオプションが設定されていない場合は、デフォルトで SSL 接続を確立する必要があります。SSL を使用しない既存の
アプリケーションに準拠するために、verifyServerCertificate プロパティは
「false」に設定されます。
useSSL=false を設定して SSL を明示的に無効にするか、useSSL=true を設定してサーバー証明書検証用のトラストストアを提供する必要があります
[ main]
DbCommandExecutor 情報 指定されたユーザー名/パスワードを使用してログインできません
[ main] DbCommandExecutor
ERROR データベースへの接続時にエラーが発生しました。java.sql.SQLException: com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)[mysql-connector-java.jar:5.1]でユーザー 'scm'@'localhost' のアクセスが
拒否されました (パスワード: YES を使用)
.49】

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)[mysql-connector-java.jar:5.1.49]
com.mysql.jdbc.MysqlIO.checkErrorPacket
(MysqlIO.java:3869)[mysql-connector] -java.jar :5.1.49] com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:864)[mysql-connector-java.jar:5.1.49]
com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication ( MysqlIO.java:1707)[mysql-connector-java.jar:5.1.49] com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)[mysql-connector-java.jar:5.1.49 ]com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)[mysql-connector-java.jar:5.1.49 ]








com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)[mysql-connector-java.jar:5.1.49]
com.mysql.jdbc.ConnectionImpl.createNewIO
(ConnectionImpl.java:2015)[mysql-connector] -java.jar:5.1.49] com.mysql.jdbc.ConnectionImpl . (ConnectionImpl.java:768)[mysql-connector-java.jar:
5.1.49
] com.mysql.jdbc.JDBC4Connection.(JDBC4Connection. java:47)[mysql-connector-java.jar:5.1.49] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)[:1.8.0_262] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [:1.8.0_262]






sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_262]
java.lang.reflect.Constructor.newInstance
(Constructor.java:423)[:1.8.0_262]
com.mysql.jdbc
。 Util.handleNewInstance(Util.java:403)[mysql-connector-java.jar:5.1.49] com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)[mysql-connector-java.jar:5.1
]
.49] com.mysql.jdbc.NonRegisteringDriver.connect
(
NonRegisteringDriver.java:323)[mysql-connector-java.jar:5.1.49] java.sql.DriverManager.getConnection(DriverManager.java:664)[: 1.8.0_262 ]java.sql.DriverManager.getConnection(DriverManager.java:247)[:1.8.0_262]






com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection ( DbCommandExecutor.java:263)[db-common-6.3.1.96818eaab0a222aa84a7854b8d22c0c7.jar:]
com.cloudera.enterprise.dbutil.DbCommandExecutor.main(DbCommandExecu tor.java:139) [db-common-6.3.1.96818eaab0a222aa84a7854b8d22c0c7.jar:]
[ main] DbCommandExecutor ERROR
終了コード 8 で終了
–> エラー 8、諦めます (エラーを無視したい場合は --force を使用してください)

查看一下配置文件

```powershell
cat /etc/cloudera-scm-server/db.properties
Auto-generated by scm_prepare_database.sh on 2023年 07月 18日 星期二 20:35:55 CST

#

For information describing how to configure the Cloudera Manager Server

to connect to databases, see the "Cloudera Manager Installation Guide."

#
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=123456

MySQLにログインする

mysql -h 127.0.0.1 -P 3306 -u root -p

 Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

付与された許可

mysql>に対するすべての権限を付与します「123456」で識別される「root」@「%」に;
クエリは OK、影響を受ける行は 0、警告は 1 件 (0.00 秒)

mysql> scm ですべてを許可します。「123456」で識別される「scm」@「%」へ。*
クエリ OK、影響を受ける行は 0、警告は 1 件 (0.01 秒)

mysql>終了;
さよなら

scm_prepare_database.shを再実行します

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm 123456

問題を解く

JAVA_HOME=/usr/lib/jvm/jre-openjdk
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/lib/jvm/jre-openjdk/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Tue Jul 18 17:01:34 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

おすすめ

転載: blog.csdn.net/programmer589/article/details/131797139