2016-04-20 19 views
5

Sono nuovo utilizzando il database MySql, ho scaricato EasyPHP-Devserver-16.1, quando eseguo il mio server per aggiornare il mio schema di base di dati questo messaggio di errore si presenta.La tabella 'performance_schema.session_variables' non esiste

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: non esiste Tabella 'performance_schema.session_variables'

So che il problema non è nel mio file di configurazione primavera, ma in MySQL server.

public class Configurations { 

    protected static final String PROPERTY_NAME_DATABASE_DRIVER = "com.mysql.jdbc.Driver"; 
    protected static final String PROPERTY_NAME_DATABASE_PASSWORD = ""; 
    protected static final String PROPERTY_NAME_DATABASE_URL = "jdbc:mysql://127.0.0.1:3306/quraa"; 
    protected static final String PROPERTY_NAME_DATABASE_USERNAME = "root"; 

    private static final String PROPERTY_PACKAGES_TO_SCAN = "com.med.quraa.models"; 
    @Bean 
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter){ 
     LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); 
     entityManagerFactoryBean.setDataSource(dataSource); 
     entityManagerFactoryBean.setJpaVendorAdapter(jpaVendorAdapter); 
     entityManagerFactoryBean.setPackagesToScan(PROPERTY_PACKAGES_TO_SCAN); 
     return entityManagerFactoryBean; 
    } 

    @Bean 
    public DriverManagerDataSource dataSource(){ 
     DriverManagerDataSource ds = new DriverManagerDataSource(); 
     ds.setDriverClassName(PROPERTY_NAME_DATABASE_DRIVER); 
     ds.setUrl(PROPERTY_NAME_DATABASE_URL); 
     ds.setUsername(PROPERTY_NAME_DATABASE_USERNAME); 
     ds.setPassword(PROPERTY_NAME_DATABASE_PASSWORD); 
     return ds; 
    } 

    @Bean 
    public JdbcTemplate jdbcTemplate(){ 
     JdbcTemplate jdbcTemplate=new JdbcTemplate(); 
     jdbcTemplate.setDataSource(dataSource()); 
     return jdbcTemplate; 
    } 

    @Bean 
    public JpaVendorAdapter jpaVendorAdapter(){ 
     HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter(); 
     adapter.setDatabase(Database.MYSQL); 
     adapter.setShowSql(true); 
     adapter.setGenerateDdl(true); 
     adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect"); 
     return adapter; 
    } 

    @Bean 
    public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { 
     return new JpaTransactionManager(entityManagerFactory); 
    } 

} 

Si noti che ho testato anche org.apache.tomcat.dbcp.dbcp.BasicDataSource ma ho avuto lo stesso errore, ciò significa che org.springframework.jdbc.datasource.DriverManagerDataSource non hanno alcun problema con questo

+0

provare a eseguire questo comando utilizzando utente root: 'mysql_upgrade -u root -p --force' e quindi riavviare il server mysql –

risposta

6

risolto ... ho aperto cmd poi:

cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin 

quindi eseguito questa riga di comando:

mysql_upgrade -u root -p --force 

Un server Restart è necessario!

+0

è uguale alla mia risposta –

+0

aggiungi questo in questione e chiudilo –

+1

Non sei sicuro del motivo per cui questo è giù votato, la risposta è simile ma questo è più chiaro –

3

schema prestazioni non è installato di default.
Per il controllo, è possibile eseguire il comando

SHOW VARIABLES LIKE 'performance_schema'; 

Supponiamo, ora si vedrà OFF

Per abilitarla, avviare il server con la variabile performance_schema abilitato. Ad esempio, utilizzare queste righe nel file my.cnf:

[mysqld] 
performance_schema=ON 

Maggiori dettagli si possono trovare nella documentazione ufficiale:

https://dev.mysql.com/doc/refman/en/performance-schema-quick-start.html

+0

Grazie per la domanda, ma quando eseguo ** MOSTRA VARIABILI COME 'performance_schema'; ** I avere un messaggio di errore: Tabella 'performance_schema.session_variables 'non esiste .. i my conf file ho aggiunto: performance_schema = on ... e ancora non funziona –

+0

hai riavviato un servizio mysql? –

+0

sì ho fatto .. e ancora non funziona –

33
  1. innanzitutto aggiornare il MySql Server per risolvere il problema eseguendo questo comando:

    mysql_upgrade -u root -p --force

  2. Poi riavvio Server:

+2

voglio empahize la parte 'restart the server'. – bram

1

Ecco come risolvere il problema (dalla riga di comando):

mysql -u {user} -p 
mysql> set @@global.show_compatibility_56=ON; 

In /etc/my.cnf:

show_compatibility_56 = 1 

questo funziona davvero per me senza aggiornare mysql. Dopo questo è necessario riavviare mysql.