Sonarqube中StartSonar.bat啟動不了。Win10
阿新 • • 發佈:2018-12-16
問題描述及最後解決方案
1、下載MySql 5.7.23, Sonar 6.7.5 2、跟著網上安裝文件,先建立Sonar資料庫,再修改配置檔案。 3、結果啟動時一直報錯。
2018.10.22 12:19:16 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory E:\sonarqube-6.7.5\temp
2018.10.22 12:19:16 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.10.22 12:19 :16 INFO app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [E:\sonarqube-6.7.5\elasticsearch]: E:\Program Files\Java\jdk1.8\bin\java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch - server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi= true -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.path.home=E:\sonarqube-6.7.5\elasticsearch -cp lib/* org.elasticsearch.bootstrap.Elasticsearch -Epath.conf=E:\sonarqube-6.7.5\temp\conf\es
INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
INFO app[][o.e.p.PluginsService] no modules loaded
INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
INFO app[][o.s.a.SchedulerImpl] Process[es] is up
INFO app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [E:\sonarqube-6.7.5]: E:\Program Files\Java\jdk1.8\bin\java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=E:\sonarqube-6.7.5\temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*;./lib/server/*;E:\sonarqube-6.7.5\lib\jdbc\mysql\mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer E:\sonarqube-6.7.5\temp\sq-process1786107185523570293properties
INFO app[][o.s.a.SchedulerImpl] Process [web] is stopped
INFO app[][o.s.a.SchedulerImpl] Process [es] is stopped
INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
WARN app[][o.e.t.n.Netty4Transport] exception caught on transport layer [[id: 0x730a13cc, L:/127.0.0.1:56461 - R:/127.0.0.1:9001]], closing connection
java.io.IOException: 遠端主機強迫關閉了一個現有的連線。
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(Unknown Source)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.read(Unknown Source)
at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
at ...
4、依照網上的解決辦法都沒解決,試了半天。突然看到一個問題,那就是一開始 Process[es] 啟動是正常的,但是Process [web]啟動有問題。
app[][o.s.a.SchedulerImpl] Process[es] is up
...
app[][o.s.a.SchedulerImpl] Process [web] is stopped
5、於是就去找web的日誌檔案\log\web.log,結果發現的問題所在。
2018.10.22 10:52:36 INFO web[][o.s.p.ProcessEntryPoint] Starting web
2018.10.22 10:52:37 ERROR web[][o.a.c.h.Http11NioProtocol] Failed to initialize end point associated with ProtocolHandler ["http-nio-0.0.0.0-9000"]
java.net.BindException: Address already in use: bind
6、原來埠9000被其他程式佔用了,接下來就容易了。找到那個程式佔用了這個埠。
E:\Program Files\Java\jdk1.8.0_191\bin>netstat -aon|findstr "9000"
協議 本地地址 外部地址 狀態 PID
TCP 0.0.0.0:9000 0.0.0.0:0 LISTENING 34104
E:\Program Files\Java\jdk1.8.0_191\bin>tasklist|findstr "34104"
eclipse.exe 34104 Console 1 106,552 K
7、關閉程式,重啟startsonar.bat,問題解決。
建立Sonar資料庫
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
修改配置檔案conf\sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.web.port=9000