2013-07-22 30 views
6

Tôi đang tạo một db trong mysql cho một chương trình java.My hoạt động tốt trong hệ thống bạn bè của tôi.Nhưng tôi có một số vấn đề với mysql của tôi.Bảng 'mysql.user' không tồn tại: ERROR

Truy vấn dưới đây:

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 

tôi không thể tạo ra bất kỳ người sử dụng để được giúp đỡ db.Please của tôi ??

+0

Bạn có thể xem liên kết này trước: http://dev.mysql.com/doc/refman/5.1/en/create-table.html –

+0

Trong trường hợp của tôi, mọi thứ vẫn còn nguyên vẹn (bảng 'mysql' đã có không được * bị hỏng * hoặc * bỏ *) Tôi đã thử 'SELECT * FROM mysql.user' từ ** dòng lệnh ** trong khi ** MySQL-Workbench ** đang chạy với phần' Người dùng và Đặc quyền 'được mở (về cơ bản là bảng mysql.user đã bị * khóa * bởi 'MySQL-Workbench'). Đóng Workbench giải quyết vấn đề. Tôi quan sát thấy rằng trò chuyện cũng đúng: nếu tôi đăng nhập bằng 'root' từ' shell' và sau đó cố gắng điều hướng đến phần 'Người dùng và Đặc quyền 'trên Workbench, nó sẽ thất bại. –

Trả lời

2

Có vẻ như đã xảy ra sự cố với cài đặt MySQL của bạn. Bảng mysql.user chắc chắn sẽ tồn tại. Hãy thử chạy lệnh dưới đây trên máy chủ của bạn để tạo ra các bảng trong cơ sở dữ liệu được gọi là mysql:

mysql_install_db 

Nếu điều đó không làm việc, có thể các điều khoản trên thư mục dữ liệu MySQL của bạn đang sai lầm. Nhìn vào một cài đặt "được biết đến" như là một tham chiếu cho những gì các điều khoản nên được.

Bạn cũng có thể thử cài đặt lại hoàn toàn MySQL.

1

Bạn có thể chạy truy vấn sau để kiểm tra sự tồn tại của bảng người dùng.

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

Xem nếu bạn có thể tìm thấy một hàng với các giá trị sau trong

mysql user BASE TABLE MyISAM 

Nếu bạn không thể tìm thấy cái nhìn bảng này tại liên kết sau để xây dựng lại cơ sở dữ liệu How to recover/recreate mysql's default 'mysql' database

2

cơ sở dữ liệu của bạn có thể tham nhũng. Hãy thử để kiểm tra xem mysql.user tồn tại:

use mysql; 
select * from user; 

Nếu những bị thiếu bạn có thể thử tái tạo các bảng bằng cách sử dụng

mysql_install_db

hoặc bạn có thể phải làm sạch (hoàn toàn loại bỏ nó) và cài đặt lại 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) 

kiểm tra cơ sở dữ liệu mysql và người dùng bảng như được nêu ở trên nếu công việc dosent đó, cài đặt mysql của bạn không đúng.

sử dụng lệnh dưới đây đề cập đến trong bài viết khác để cài đặt bảng một lần nữa

mysql_install_db 
+1

_mysql_install_db_ không được chấp nhận. Vui lòng xem xét chuyển sang 'mysqld --initialize' – revoke

0

Cố gắng chạy mysqladmin reload, mà nằm ở /usr/loca/mysql/bin/ trên mac.

Các vấn đề liên quan