source

'mysql.user' 테이블이 없습니다. ERROR

ittop 2023. 10. 4. 22:58
반응형

'mysql.user' 테이블이 없습니다. ERROR

저는 mysql에서 자바 프로그램을 위한 db를 만들고 있습니다.저의 프로그램은 친구 시스템에서 잘 작동합니다.하지만 제 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에 사용자를 만들 수 없습니다.제발 도와주세요?

내 해결책은 실행하는 것이었습니다.

mysql_upgrade -u root

시나리오:맥에서 MySQL 버전을 '홈브루 업그레이드'로 업데이트 했습니다.그 후, 어떤 것들은 작동했지만, 다른 명령들은 문제에 설명된 오류를 제기했습니다.

당신의 MySQL 설치에 뭔가 문제가 있는 것 같습니다.mysql.user테이블은 분명히 존재해야 합니다.서버에서 아래 명령을 실행하여 다음과 같은 데이터베이스에 테이블을 만들어 봅니다.mysql:

mysql_install_db

만약 그것이 작동하지 않는다면, MySQL 데이터 디렉토리의 권한이 엉망이 될 수도 있습니다.사용 권한이 무엇인지에 대한 참조로 "양호한 것으로 알려진" 설치를 살펴봅니다.

MySQL을 완전히 다시 설치해 볼 수도 있습니다.

lxxvi에서 설명하는 것과 동일한 문제입니다.입니다.

    mysql_upgrade -u root

비밀번호를 성공적으로 입력할 수 있게 해줬습니다

    mysql_secure_installation

기다리고 있었습니다.

데이터베이스가 손상되었을 수 있습니다.mysql.user가 존재하는지 확인해 보십시오.

use mysql;
select * from user;

이러한 항목이 없는 경우 다음을 사용하여 테이블을 다시 만들어 보십시오.

mysql_install_db

또는 MySQL을 치료(완전히 제거)하고 다시 설치해야 할 수도 있습니다.

 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

다음 쿼리를 실행하여 사용자 테이블이 있는지 확인할 수 있습니다.

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

다음 값을 가지는 행을 찾을 수 있는지 확인합니다.

mysql   user    BASE TABLE  MyISAM  

이 표를 찾을 수 없는 경우 다음 링크를 참조하여 데이터베이스를 재구축하는 방법mysql의 기본 'mysql' 데이터베이스를 복구/재작성하는 방법

실행해보기mysqladmin reload, 에 위치한/usr/loca/mysql/bin/맥에서

'Error Code: 1046'. 

이 오류는 다른 데이터베이스를 선택하고 다른 테이블을 참조하는 쿼리를 실행한 것이 테이블이 존재하지 않는 경우가 있음을 보여줍니다.결과는 'No database selected - No database selected 사이드바의 SCHEMAS 목록에서 이름을 두 번 클릭하여 사용할 기본 DB를 선택합니다'를 나타냅니다.문제를 해결할 것이고 저에게는 아주 잘 통했습니다.

빈 데이터베이스에서 grant/privaces 쿼리를 실행할 때 종종 발생합니다.

MySQL 8.0.16 ,mysql_upgrade사용하지 않습니다. 다음을(를) 사용해야 합니다.

  • 중의 하나--upgrade=FORCE를 시작하면서mysqld
  • 아니면 추가upgrade=FORCE[mysqld]n의 my.cnf그리고 달리다service mysql restart오).my.cnf서버가 다시 시작되면 다시 시작할 때 업그레이드를 방지합니다.)

언급URL : https://stackoverflow.com/questions/17780630/table-mysql-user-doesnt-existerror

반응형