web-dev-qa-db-fra.com

La table 'performance_schema.session_variables' n'existe pas

Je suis nouveau dans l'utilisation de la base de données MySql, j'ai téléchargé EasyPHP-Devserver-16.1, lorsque j'exécute mon serveur pour mettre à jour mon schéma de base de données, ce message d'erreur apparaît.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: la table 'performance_schema.session_variables' n'existe pas

Je sais que le problème ne vient pas de mon fichier de configuration Spring mais du serveur 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);
    }

}

Notez que j'ai testé org.Apache.Tomcat.dbcp.dbcp.BasicDataSource aussi mais j'ai eu la même erreur, cela signifie que org.springframework.jdbc.datasource.DriverManagerDataSource n'a aucun problème avec ça

9
Mohamed Nabli

Résolu ... J'ai ouvert cmd puis:

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

puis exécuté cette ligne de commande:

mysql_upgrade -u root -p --force

Un redémarrage du serveur est nécessaire!

12
Mohamed Nabli
  1. Mettez d'abord à niveau votre MySql serveur pour résoudre le problème en exécutant cette commande:

    mysql_upgrade -u root -p --force

  2. Alors redémarrer le serveur:

41
Rafik BELDI

Voici comment y remédier (à partir de la ligne de commande):

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

Dans /etc/my.cnf:

show_compatibility_56 = 1

celui-ci fonctionne vraiment pour moi sans mettre à jour mysql. Après cela, vous devez redémarrer mysql.

7
Md. Kawsaruzzaman

Le schéma de performances n'est pas installé par défaut.
Pour vérifier, vous pouvez exécuter la commande

SHOW VARIABLES LIKE 'performance_schema';

Supposons maintenant que vous verrez OFF

Pour l'activer, démarrez le serveur avec la variable performance_schema activée. Par exemple, utilisez ces lignes dans votre fichier my.cnf:

[mysqld]
performance_schema=ON

Vous trouverez plus de détails dans la documentation officielle:

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

5
Pavel Zimogorov

Comme certaines personnes ont posé des questions sur la partie du redémarrage du serveur, je posterai ma réponse en tenant compte de cette partie:

1 .Allez dans le répertoire du dossier d'installation de MySQL dans mon cas c'était: C:\Program Files\MySQL\MySQL Server 5.7\bin.

  1. Ouvrez CMD dans ce répertoire, puis exécutez la commande "mysql_upgrade -u root -p".

  2. Si votre schéma était protégé par un mot de passe, vous devez entrer le mot de passe lorsqu'il est demandé.

  3. Cela permettra de vérifier toutes les tables de tous les schémas, vous devez donc attendre la fin de la vérification.

  4. À la fin, le message suivant devrait apparaître:

Upgrade process completed successfully.

Checking if update is needed.
  1. Redémarrez les services du serveur et du routeur MySQL:
open task manager-->services-->right click on the services MySQL 
server and MySQL router-->restart them.
  1. Connectez-vous à votre serveur à l'aide de votre établi, il devrait se connecter.
1
AAEM