Таблица ‘performance_schema.session_variables’ не существует

#mysql

#mysql #весна #mysql-ошибка-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);
    }

}
  

Обратите внимание, что я org.apache.tomcat.dbcp.dbcp.BasicDataSource также тестировал, но у меня была та же ошибка, это означает, что org.springframework.jdbc.datasource.DriverManagerDataSource с этим проблем нет

Комментарии:

1. попробуйте запустить эту команду с помощью пользователя root: mysql_upgrade -u root -p --force а затем перезапустите сервер mysql

Ответ №1:

  1. Сначала обновите свой MySql сервер, чтобы решить проблему, выполнив эту команду:

    mysql_upgrade -u root -p --force

  2. Затем перезапустите сервер:

Комментарии:

1. Я хочу подчеркнуть часть «перезапустить сервер».

Ответ №2:

Решена… Затем я открыл cmd :

 cd [installation_path]eds-binariesdbservermysql5711x86x160420141510bin
  

затем выполнил эту командную строку :

 mysql_upgrade -u root -p --force
  

Требуется перезапуск сервера!

Комментарии:

1. это то же самое, что и мой ответ

2. добавьте это в вопрос и закройте его

3. Не уверен, почему это отклонено, ответ похож, но этот более понятен

Ответ №3:

Вот как это исправить (из командной строки):

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

В /etc/my.cnf:

 show_compatibility_56 = 1
  

у меня это действительно работает без обновления mysql. После этого вам нужно перезапустить mysql.

Ответ №4:

Схема производительности не установлена по умолчанию.
Для проверки вы можете запустить команду

 SHOW VARIABLES LIKE 'performance_schema';
  

Предположим, теперь вы увидите

Чтобы включить ее, запустите сервер с включенной переменной performance_schema. Например, используйте эти строки в вашем файле my.cnf:

 [mysqld]
performance_schema=ON
  

Более подробную информацию вы можете найти в официальной документации:

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

Комментарии:

1. Спасибо, что вы подали заявку, но когда я запускаю ОТОБРАЖЕНИЕ ПЕРЕМЕННЫХ ТИПА ‘performance_schema’; У меня появляется сообщение об ошибке: таблица ‘performance_schema.session_variables’ не существует .. я добавил свой conf-файл: performance_schema = включено… и все еще не работает

2. вы перезапустили службу mysql?

3. это часть ответа .. вы будете голосовать «за»

Ответ №5:

Поскольку некоторые люди спрашивали о части перезапуска сервера, я опубликую свой ответ с учетом этой части:

1 . Перейдите в каталог установочной папки MySQL, в моем случае это было: C:Program Файлы MySQL MySQL Server 5.7bin.

  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. Подключитесь к своему серверу с помощью вашего workbench, он должен подключиться.