31

Java プログラム用に mysql でデータベースを作成しています。私のプログラムは友人のシステムでうまく動作しますが、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

データベースにユーザーを作成できません。助けてください??

4

8 に答える 8

9

データベースが壊れている可能性があります。mysql.user が存在するかどうかを確認してください。

use mysql;
select * from user;

これらが欠落している場合は、次を使用してテーブルを再作成してみてください

mysql_install_db

または、MySQL をクリーニング (完全に削除) して再インストールする必要がある場合があります。

于 2013-07-22T05:47:38.503 に答える
3
 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
于 2013-07-22T05:48:44.407 に答える
2

次のクエリを実行して、ユーザー テーブルの存在を確認できます。

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

で次の値を持つ行が見つかるかどうかを確認します

mysql   user    BASE TABLE  MyISAM  

このテーブルが見つからない場合は、次のリンクを参照してデータベースを再構築してくださいmysql のデフォルトの 'my​​sql' データベースを回復/再作成する方法

于 2013-07-22T05:47:15.743 に答える
1

macmysqladmin reloadにあるrun を試してください。/usr/loca/mysql/bin/

于 2014-05-07T11:51:32.760 に答える