表'performance_schema.session_variables'不存在

Moh*_*bli 9 mysql spring mysql-error-1064

我是使用MySql数据库的新手,我已经下载了EasyPHP-Devserver-16.1,当我运行我的服务器来更新我的数据库架构时,会显示此错误消息.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'performance_schema.session_variables'不存在

我知道问题不在我的spring配置文件中,而是在mysql服务器中.

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);
    }

}
Run Code Online (Sandbox Code Playgroud)

请注意,我也测试过,org.apache.tomcat.dbcp.dbcp.BasicDataSource但我有同样的错误,这意味着org.springframework.jdbc.datasource.DriverManagerDataSource没有问题

Raf*_*LDI 41

  1. 首先升级MySql服务器以通过运行此命令来解决问题:

    mysql_upgrade -u root -p --force

  2. 然后重启服务器:

  • 我想强调"重启服务器"部分. (2认同)

Moh*_*bli 12

解决了...我打开了cmd然后:

cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
Run Code Online (Sandbox Code Playgroud)

然后执行此命令行:

mysql_upgrade -u root -p --force
Run Code Online (Sandbox Code Playgroud)

需要服务器重启!

  • 不知道为什么这被否决了,答案是相似的,但这个更清楚 (2认同)

小智 7

Here's how to fix it (from the command line):

mysql -u {user} -p
mysql> set @@global.show_compatibility_56=ON;
Run Code Online (Sandbox Code Playgroud)

In /etc/my.cnf:

show_compatibility_56 = 1
Run Code Online (Sandbox Code Playgroud)

this one really works for me without upgrading mysql. After this you need to restart mysql.


Pav*_*rov 5

默认情况下未安装性能架构。
为了进行检查,您可以运行以下命令

SHOW VARIABLES LIKE 'performance_schema';
Run Code Online (Sandbox Code Playgroud)

假设现在您将看到OFF

要启用它,请在启用了performance_schema变量的情况下启动服务器。例如,在my.cnf文件中使用以下行:

[mysqld]
performance_schema=ON
Run Code Online (Sandbox Code Playgroud)

您可以在官方文档中找到更多详细信息:

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