web-dev-qa-db-ja.com

テーブル 'performance_schema.session_variables'は存在しません

私はMySqlデータベースを使用するのが初めてで、EasyPHP-Devserver-16.1をダウンロードしました。サーバーを実行してデータベーススキーマを更新すると、このエラーメッセージが表示されます。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:テーブル 'performance_schema.session_variables'は存在しません

私の問題は、私の春の設定ファイルではなく、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);
    }

}

私がテストしたことに注意してくださいorg.Apache.Tomcat.dbcp.dbcp.BasicDataSourceでも同じエラーが発生しました。つまり、org.springframework.jdbc.datasource.DriverManagerDataSourceそれで問題ない

9
Mohamed Nabli

解決済み... cmdを開いてから:

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

次に、このコマンドラインを実行しました:

mysql_upgrade -u root -p --force

サーバーの再起動が必要です!

12
Mohamed Nabli
  1. 最初にMySqlサーバーをアップグレードして、次のコマンドを実行して問題を解決します。

    mysql_upgrade -u root -p --force

  2. 次にrestartサーバー:

41
Rafik BELDI

修正方法は次のとおりです(コマンドラインから)。

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

/etc/my.cnf内:

show_compatibility_56 = 1

これは、mysqlをアップグレードしなくても実際に機能します。この後、mysqlを再起動する必要があります。

7

パフォーマンススキーマはデフォルトではインストールされません。
チェックのために、コマンドを実行できます

SHOW VARIABLES LIKE 'performance_schema';

今、OFFが表示されるとします

有効にするには、performance_schema変数を有効にしてサーバーを起動します。たとえば、my.cnfファイルで次の行を使用します。

[mysqld]
performance_schema=ON

詳細については、公式ドキュメントをご覧ください。

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

5
Pavel Zimogorov

一部の人々がサーバーの再起動の一部について尋ねたので、その部分を考慮して私の答えを投稿します:

1。私の場合、MySQLインストールフォルダーのディレクトリC:\ Program Files\MySQL\MySQL Server 5.7\binに移動します。

  1. このディレクトリでCMDを開き、「mysql_upgrade -u root -p」コマンドを実行します。

  2. スキーマがパスワードで保護されている場合は、要求されたときにパスワードを入力する必要があります。

  3. これにより、すべてのスキーマのすべてのテーブルのチェックが行われるため、チェックが完了するまで待つ必要があります。

  4. 最後に、次のメッセージが表示されます。

Upgrade process completed successfully.

Checking if update is needed.
  1. MySQLサーバーとルーターサービスを再起動します。
open task manager-->services-->right click on the services MySQL 
server and MySQL router-->restart them.
  1. ワークベンチを使用してサーバーに接続します。接続する必要があります。
1
AAEM