Mysql安装完成之后,显示启动成功,这时我启动一个配置好的web服务,报错提示是数据库报错:Table ‘information_schema.CHARACTER_SETS’ doesn’t exist。
我的环境是Linux(Redhat 4.8.5)/Mysql5.7.28。
经过多次失败安装,发现安装完成初次启动之后,数据库会自带有下面着4个库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
这样的数据库,才可以正常使用。
下面简单给大家介绍这4个库的作用,我学习的是这篇博客,想详细学习的,建议大家学习这篇博客,推荐给大家:
https://blog.csdn.net/cainiao000001/article/details/80502549
information_schema是Mysql中的一个信息数据库,提供了访问数据库元数据的方式。例如,在此库中,SCHEMATA表提供当前mysql实例中所有数据库的信息,show databases的结果就是取自此表;例如,CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
我这个报错,就是提示缺少此表,其实就是安装的数据库中没有information_schema这个库导致的。
mysql是核心数据库,存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。例如,修改root用户密码在mysql.user表中。我自己有一次安装完成之后,发现想修改用户密码,但却找不到user库,这种情况也表示我的数据库初始化没有完成。
performance_schema主要用于收集数据库服务器性能参数。
sys库所有的数据源来自:performance_schema。把performance_schema的把复杂度降低,可以快速的了解系统的元数据信息。
如果初次启动发现数据库缺失这些库,那么可以手动初始化试一下:
在数据库安装路径,bin目录中:
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
其中:–user根据自己实际的操作用户即可,–basedir是自己的mysql安装路径,–datadir是自己在my.cnf文件中配置的data的路径。
初始化成功之后,系统会提示一个随机生成的数据库密码,记住这个密码,之后登录数据库需要使用这个密码!!!登陆后建议自己修改密码。(如果没记下,就去配置文件查找。)
所以,如果大家的报错,提示这类库表的缺失,都可以尝试重新初始化数据库,如果可以生成这些库表,数据库就可以正常使用。