表'mysql.user'不存在:ERROR

时间:2013-07-22 05:40:06

标签: mysql

我正在mysql中为java程序创建一个数据库。我的程序在我的朋友系统中运行良好。但我的mysql有问题。

查询如下:

mysql> create database sampledb;

Query OK, 1 row affected (0.00 sec)

mysql> use sampledb;

Database changed

mysql> create user zebronics identified by 'zebra123';

ERROR 1146 (42S02): Table 'mysql.user' doesn't exist

我无法为我的db.Please帮助创建任何用户?

8 个答案:

答案 0 :(得分:39)

我的解决方案是运行

mysql_upgrade -u root

方案:我在Mac上使用“自制升级”更新了MySQL版本。之后,有些东西起作用了,但是其他命令引发了问题中描述的错误。

答案 1 :(得分:5)

看起来有些东西搞砸了你的MySQL安装。 mysql.user表肯定存在。尝试在服务器上运行以下命令,在数据库中创建名为mysql的表:

mysql_install_db

如果这不起作用,可能是MySQL数据目录上的权限搞砸了。查看“已知良好”安装作为权限应该是什么的参考。

您也可以尝试完全重新安装MySQL。

答案 2 :(得分:4)

您的数据库可能已损坏。尝试检查mysql.user是否存在:

use mysql;
select * from user;

如果缺少这些,您可以尝试使用

重新创建表格

mysql_install_db

或者您可能需要清理(完全删除它)并重新安装MySQL。

答案 3 :(得分:4)

与lxxxvi描述的问题相同。正在运行

    mysql_upgrade -u root

允许我成功输入密码

    mysql_secure_installation

正在等待。

答案 4 :(得分:1)

您可以运行以下查询来检查用户表的存在。

SELECT * FROM information_schema.TABLES
WHERE TABLE_NAME LIKE '%user%'

查看是否可以在

中找到包含以下值的行
mysql   user    BASE TABLE  MyISAM  

如果您无法找到此表,请查看以下链接以重建数据库How to recover/recreate mysql's default 'mysql' database

答案 5 :(得分:1)

 show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| datapass_schema    |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.05 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables
    -> ;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
23 rows in set (0.00 sec)

mysql> create user m identified by 'm';
Query OK, 0 rows affected (0.02 sec)

检查数据库mysql和表用户,如上所示,如果该剂量工作,你的mysql安装不正确。

使用以下命令在其他帖子中提及再次安装表

mysql_install_db

答案 6 :(得分:0)

尝试运行mysqladmin reload,它位于mac上的/usr/loca/mysql/bin/

答案 7 :(得分:0)

'Error Code: 1046'. 

此错误表明该表不存在有时可能是由于选择了不同的数据库并运行引用另一个表的查询。结果表明     '未选择数据库通过在侧栏“#”中的SCHEMAS列表中双击其名称来选择要使用的默认数据库。 将解决问题,它对我很有用。