Table 'performance_schema.session_variables' 不存在
Table 'performance_schema.session_variables' doesn't exist
我是使用 MySql 数据库的新手,我已经下载了 EasyPHP-Devserver-16.1,当我 运行 我的服务器更新我的数据库架构时出现此错误消息。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table
'performance_schema.session_variables' doesn't exist
我知道问题不在我的 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
没有问题
默认情况下不安装性能架构。
要检查,您可以 运行 命令
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
首先升级您的 MySql
服务器以通过 运行 此命令解决问题:
mysql_upgrade -u root -p --force
然后重启服务器:
已解决...
然后我打开了 cmd :
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
然后执行这个命令行:
mysql_upgrade -u root -p --force
需要重启服务器!
修复方法如下(从命令行):
mysql -u {user} -p
mysql> set @@global.show_compatibility_56=ON;
在/etc/my.cnf:
show_compatibility_56 = 1
无需升级,这个对我来说真的很管用 mysql。在此之后你需要重新启动 mysql.
由于有人问到服务器重启的部分,我会 post 考虑到那部分我的回答:
1 .转到 MySQL 安装文件夹的目录,在我的例子中是:
C:\Program Files\MySQL\MySQL 服务器 5.7\bin.
在该目录打开CMD,然后运行"mysql_upgrade -u root -p"命令。
如果您的架构受密码保护,您应该在请求时输入密码。
这将检查所有模式的所有表,因此您应该等到检查完成。
最后应出现以下消息:
Upgrade process completed successfully.
Checking if update is needed.
- 重新启动 MySQL 服务器和路由器服务:
open task manager-->services-->right click on the services MySQL
server and MySQL router-->restart them.
- 使用您的 workbench 连接到您的服务器,应该可以连接。
我是使用 MySql 数据库的新手,我已经下载了 EasyPHP-Devserver-16.1,当我 运行 我的服务器更新我的数据库架构时出现此错误消息。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.session_variables' doesn't exist
我知道问题不在我的 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
没有问题
默认情况下不安装性能架构。
要检查,您可以 运行 命令
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
首先升级您的
MySql
服务器以通过 运行 此命令解决问题:mysql_upgrade -u root -p --force
然后重启服务器:
已解决... 然后我打开了 cmd :
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
然后执行这个命令行:
mysql_upgrade -u root -p --force
需要重启服务器!
修复方法如下(从命令行):
mysql -u {user} -p
mysql> set @@global.show_compatibility_56=ON;
在/etc/my.cnf:
show_compatibility_56 = 1
无需升级,这个对我来说真的很管用 mysql。在此之后你需要重新启动 mysql.
由于有人问到服务器重启的部分,我会 post 考虑到那部分我的回答:
1 .转到 MySQL 安装文件夹的目录,在我的例子中是: C:\Program Files\MySQL\MySQL 服务器 5.7\bin.
在该目录打开CMD,然后运行"mysql_upgrade -u root -p"命令。
如果您的架构受密码保护,您应该在请求时输入密码。
这将检查所有模式的所有表,因此您应该等到检查完成。
最后应出现以下消息:
Upgrade process completed successfully. Checking if update is needed.
- 重新启动 MySQL 服务器和路由器服务:
open task manager-->services-->right click on the services MySQL server and MySQL router-->restart them.
- 使用您的 workbench 连接到您的服务器,应该可以连接。