Sonar setup with MySql

Ravi picture Ravi · Jul 20, 2017 · Viewed 10.9k times · Source

Iam trying to change the sonar Qube 5.5 default database to Mysql.But it is still connecting to default H2 DB.

Configuration as below.

I have run the below scripts in Mysql DB

# Create SonarQube database and user.
#
# Command: mysql -u root -p < create_database.sql
#

    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';
    FLUSH PRIVILEGES;

uncommented the sonar.jdbc.url for Mysql,Iam not able to see the configuration for H2 DB to comment it.

  # Property values can:                                                                                                                               
    # - reference an environment variable, for example sonar.jdbc.url= ${env:SONAR_JDBC_URL}                                                             
    # - be encrypted. See http://redirect.sonarsource.com/doc/settings-encryption.html                                                                   



#--------------------------------------------------------------------------------------------------                                                  
# DATABASE                                                                                                                                           
#                                                                                                                                                    
# IMPORTANT: the embedded H2 database is used by default. It is recommended for tests but not for                                                    
# production use. Supported databases are MySQL, Oracle, PostgreSQL and Microsoft SQLServer.                                                         

# User credentials.                                                                                                                                  
# Permissions to create tables, indices and triggers must be granted to JDBC user.                                                                   
# The schema must be created first.                                                                                                                  
sonar.jdbc.username=sonar                                                                                                                            
sonar.jdbc.password=sonar                                                                                                                            

#----- Embedded Database (default)                                                                                                                   
# H2 embedded database server listening port, defaults to 9092                                                                                       
#sonar.embeddedDatabase.port=9092                                                                                                                    

#----- MySQL 5.x                                                                                                                                     
# Only InnoDB storage engine is supported (not myISAM).                                                                                              
# Only the bundled driver is supported. It can not be changed.                                                                                       
sonar.jdbc.url=jdbc:mysql://10.9.153.6:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

Then I restarted the server from Administration->system -> Systeminfo.

After restart using cmd line getting this error:

2017.07.20 22:32:54 WARN  web[o.s.p.ProcessEntryPoint] Fail to start web                                                                             
java.lang.IllegalStateException: Webapp did not start                                                                                                
        at org.sonar.server.app.EmbeddedTomcat.isUp(EmbeddedTomcat.java:84) ~[sonar-server-5.5.jar:na]                                               
        at org.sonar.server.app.WebServer.isUp(WebServer.java:48) [sonar-server-5.5.jar:na]                                                          
        at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:105) ~[sonar-process-5.5.jar:na]                                        
        at org.sonar.server.app.WebServer.main(WebServer.java:69) [sonar-server-5.5.jar:na]                                                          
2017.07.20 22:32:54 INFO  web[o.a.c.h.Http11NioProtocol] Pausing ProtocolHandler ["http-nio-0.0.0.0-9000"]                                           
2017.07.20 22:32:55 INFO  web[o.a.c.h.Http11NioProtocol] Stopping ProtocolHandler ["http-nio-0.0.0.0-9000"]                                          
2017.07.20 22:32:55 INFO  web[o.a.c.h.Http11NioProtocol] Destroying ProtocolHandler ["http-nio-0.0.0.0-9000"]                                        
2017.07.20 22:32:55 INFO  web[o.s.s.a.TomcatAccessLog] Web server is stopped  

Answer

G. Ann - SonarSource Team picture G. Ann - SonarSource Team · Jul 20, 2017

You appear to have made the correct configuration changes, but the in-UI restart you did is not a "full" restart. Do a restart from the command line and your instance should connect to your configured database.