I m new at using MySql data base, i have downloaded EasyPHP-Devserver-16.1, when I run my server to update my data base schema this error message shows up.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.session_variables' doesn't exist
I know that the problem is not in my spring configuration file but 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);
}
}
Note that I have tested org.apache.tomcat.dbcp.dbcp.BasicDataSource
also but I had the same error, that means that org.springframework.jdbc.datasource.DriverManagerDataSource
have no problem with that
Here's how to fix it (from the command line):
In /etc/my.cnf:
this one really works for me without upgrading mysql. After this you need to restart mysql.
Performance schema is not installed by default.
For checking, you can run the command
Suppose, now you will see OFF
To enable it, start the server with the performance_schema variable enabled. For example, use these lines in your my.cnf file:
More details you can found in official documentation:
https://dev.mysql.com/doc/refman/en/performance-schema-quick-start.html
Solved... I opened cmd then :
then executed this command line :
A server Restart is needed!
As some people asked about the part of the server restart, i will post my answer considering that part:
1 .Go to the directory of the MySQL installation folder in my case it was: C:\Program Files\MySQL\MySQL Server 5.7\bin.
Open CMD in this directory, then Run "mysql_upgrade -u root -p" command.
If your schema was protected by a password, you should enter the password when it is requested.
This will make checking of all tables of all schema, so you should wait until the checking is finished.
At the end the following message should appear:
First upgrade your
MySql
Server to solve the issue by running this command:mysql_upgrade -u root -p --force
Then restart the server: