2013-07-22 2 views
6

Я создаю db в mysql для java-программы. Моя программа хорошо работает в моей системе друзей. Но у меня есть некоторые проблемы с моей mysql.Таблица 'mysql.user' не существует: ERROR

Запроса ниже:

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 помощи ??

+0

Вы можете взглянуть на эту ссылку сначала: http://dev.mysql.com/doc/refman/5.1/en/create-table.html –

+0

В моем случае все было неповрежденным (таблица 'mysql' была не был * поврежден * или * упаден *) Я пытался «SELECT * FROM mysql.user» из ** командной строки **, когда ** MySQL-Workbench ** запускался с открытыми разделами «Пользователи и привилегии» (в основном, Таблица mysql.user была * заблокирована * с помощью MySQL-Workbench'. Завершение Workbench разрешило проблему. Я заметил, что обратное также верно: если я зарегистрировался как «root» из «shell», а затем попытаюсь перейти к разделу «Пользователи и привилегия» в Workbench, он потерпит неудачу. –

ответ

2

Похоже, что что-то испортилось с установкой MySQL. Таблица mysql.user должна обязательно существовать. Попробуйте выполнить команду ниже на сервере для создания таблиц в базе данных под названием mysql:

mysql_install_db 

Если это не работает, может быть права доступа на каталог данных MySQL перепутались. Посмотрите на «хорошо известную» установку в качестве ссылки на то, какие разрешения должны быть.

Вы также можете попробовать переустановить MySQL полностью.

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

2

Ваша база данных может быть коррумпированы. Попробуйте проверить, если mysql.user существует:

use mysql; 
select * from user; 

Если они отсутствуют, вы можете попробовать воссоздать таблицы с помощью

mysql_install_db

или вы, возможно, придется чистить (полностью удалить его) и переустановить MySQL.

0
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 и пользователя таблицы, как показано выше, если эта функция dosent работает, ваша установка mysql неверна.

использовать следующую команду, как упоминание в другом посте, чтобы установить столы снова

mysql_install_db 
+1

_mysql_install_db_ устарел. Пожалуйста, переходите к 'mysqld --initialize' – revoke

0

Пробного пробег mysqladmin reload, который находится в /usr/loca/mysql/bin/ на макинтоше.

Смежные вопросы