Storage Manager Data Collector 18.1.10.171安装在win7x64上,选择异机MySQL,并且已在MySQL上进行相关配置(数据库、用户、权限),而在安装结束后,ui页面始终提示用户登陆失败
在Dell EMC\Storage Manager\msaservice\etc\compservices\compservice 文件中,提示
01/17/2019 10:33:57 | ERROR | DManager | Error with database setup (try again in 30 seconds) (192.168.8.130:3306): java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/jdbc/compmsadb com.compellent.common.sql.DatabaseConnection.generateDatabaseException(DatabaseConnection.java:220) com.compellent.common.sql.DatabaseConnection.getJndiConnection(DatabaseConnection.java:208) com.compellent.common.sql.JndiMySQLConnection.getConnection(JndiMySQLConnection.java:35) com.compellent.emdatacollector.DataManager.DatabaseManager.startup(DatabaseManager.java:385) com.compellent.emdatacollector.DataManager.DataManager.createGlobalDataManager(DataManager.java:185) com.compellent.emdatacollector.MainBean.start(MainBean.java:552) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407) org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407) org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(ContainerManagedConcurrencyInterceptor.java:104) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407) org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55) org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:52) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:369) org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:241) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326) org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:448) org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326) org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185) org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.LogDiagnosticContextRecoveryInterceptor.processInvocation(LogDiagnosticContextRecoveryInterceptor.java:79) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) org.jboss.as.ejb3.component.interceptors.AsyncFutureInterceptorFactory$1$2.runInvocation(AsyncFutureInterceptorFactory.java:97) org.jboss.as.ejb3.component.interceptors.AsyncInvocationTask.run(AsyncInvocationTask.java:73) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) org.jboss.threads.JBossThread.run(JBossThread.java:122)
异机MySQL 上配置 general_log=1 参数后,日志输出如下
compmsauser@192.168.180.16 as anonymous on
这就很诡异了,和我设置的用户名完全不同
既然用户名不一样了,那么密码和权限也一定要重新做了。密码我通过逐个读Data Collector安装后的文件获取,比如
安装目录configuration\standalone_xml_history\standalone.boot中存在:
<datasource jta="false" jndi-name="java:/jdbc/compmsadb" pool-name="compmsadb" enabled="true" use-ccm="false"> <connection-url>jdbc:mysql://192.168.8.130:3306/compmsadb?allowMultiQueries=true</connection-url> <driver-class>org.mariadb.jdbc.Driver</driver-class> <driver>mariadb</driver> <security> <user-name>compmsauser</user-name> <password>${VAULT::passwords::compmsadb::1}</password> </security> <validation> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/> <validate-on-match>true</validate-on-match> <background-validation>false</background-validation> <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLStaleConnectionChecker"/> <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/> </validation> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </datasource>
看到了这样的信息,能够确定用户是 compmsauser 密码是 compmsadb DB是 compmsadb
在MySQL上创建该用户后,安装仍然失败,在MySQL日志中:
284 Connect compmsauser@192.8.180.16 as anonymous on compmsadb 284 Connect Access denied for user 'compmsauser'@'192.168.8.16' (using password: YES) 285 Connect compmsauser@192.168.8.16 as anonymous on compmsadb 285 Connect Access denied for user 'compmsauser'@'192.168.8.16' (using password: YES) 286 GRANT ALL PRIVILEGES ON compmsadb.* TO compmsauser@'%' IDENTIFIED BY 'R3p0r!cty4sgs'
猜测Data Collector并不会按照界面填写内容去连接数据库
将授权语句手工执行
GRANT ALL PRIVILEGES ON compmsadb.* TO compmsauser@'%' IDENTIFIED BY 'R3p0r!cty4sgs'
在安装页面中填写 R3p0r!cty4sgs
安装能够顺利通过
可以在数据库中看到相关数据表,并且软件也可以登陆了
MariaDB [compmsadb]> show tables; +----------------------------------------------+ | Tables_in_compmsadb | +----------------------------------------------+ | API_EmAutomatedReportConfiguration | | API_EmAutomatedReportSettings | | API_EmDataCollectorUsage | | API_EmDirectoryService | | API_EmIoUsageComparisonSelections | | API_FluidCacheCluster | | API_FluidCacheClusterIoUsage | | API_FluidCacheClusterStorageUsage | | API_FluidCacheDeviceIoUsage | | API_FluidCacheDeviceStorageUsage | | API_FluidCacheServer | | API_FluidCacheServerIoUsage | | API_FluidCacheServerStorageUsage | | API_FluidCacheVolumeIoUsage | | API_FluidCacheVolumeStorageUsage | | API_FluidFsCluster | | API_FluidFsClusterCapacityStatistics | | API_FluidFsClusterTrafficStatisticsRate | | API_FluidFsControllerLoadBalancingStatistics | | API_FluidFsControllerTrafficStatisticsRate | | API_FluidFsNasVolumeStatus | | API_FluidFsVolumesCapacity | | API_StorageCenter | | API_StorageCenterStorageUsage | | ApiApplicationTracker | | ApiCommandTracker | | ApiMethodCall | | ApiSession | | ApiSourceTracker | | ApiUserTracker | | AuthInitStats | | CBDepartment | | CBDepartmentStats | | CBDeptmentLineItem | | CBDeptmentLineItemStats | | CBDiskClass | | CBDiskClassStats | | CBRun | | CBSystemStats | | CBTier | | CBVolume | | CBVolumeFolder | | CBVolumeFolderStats | | CBVolumeStats | | ControllerStats | | DSM_CONFIG | | DiskStats | | DiskTierStats | | EMAutomatedReport | | EMAutomatedSubReport | | EMChartAlert | | EMEvent | | EMEvent_LOG | | EMServerAgentClusterVolume | | EMServerAgentClusterVolumeStats | | EMServerAgentVolume | | EMServerAgentVolumeCompMap | | EMServerAgentVolumeStats | | EMSpaceRecoveryRun | | EMThresholdAlert | | EMThresholdDefinition | | EMThresholdObject | | EMThresholdQuery | | EmServerAgentFolder | | EmServerAgentServer | | FaultDomainStats | | FluidFsClusterV3 | | GrowthDiskTier | | GrowthSystem | | GrowthVolume | | LPortTStats | | LegacyFluidFsClusterScCluster | | LocalPortStats | | LogObject | | NasServerStats | | PagepoolStats | | QoSStats | | QosProfileStats | | ReplicationStats | | SCAlertObject | | SaNasServer | | SaServerCluster | | SaServerCompMap | | SanHqServer | | ServerFolderStats | | ServerStats | | StorageConsumption | | StorageContainerStats | | StorageDisk | | StorageDiskFolderTier | | StoragePPClass | | StoragePPTier | | StoragePagepool | | StorageProfileStats | | StorageReplayProfile | | StorageRsProfileStats | | StorageServer | | StorageServerFolder | | StorageStorageCenter | | StorageStorageContainer | | StorageVolFolder | | StorageVolume | | StrorageDiskFol | | SystemStats | | VASA_PROPERTIES | | VVOL_METADATA | | VmCluster | | VmHostServer | | VmManagementServer | | VmVirtualMachine | | VmVolume | | VolumeFolderStats | | VolumeStats | +----------------------------------------------+ 113 rows in set (0.00 sec)