【问题标题】:Master user can't connect to an existing database in Aurora MySQL - RDS主用户无法连接到 Aurora MySQL 中的现有数据库 - RDS
【发布时间】:2023-02-14 07:32:35
【问题描述】:

我有一组数据库如下

mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| sys                    |
| system                 |
| test                   |

当我尝试使用主用户访问“测试”数据库时出现以下错误

mysql> use information_schema;
Database changed
mysql>
mysql>
mysql> use test;
ERROR 1049 (42000): Unknown database 'test'
mysql>

为什么会产生这个错误? MySQL 版本 5.7

【问题讨论】:

  • 检查用户访问test表的权限,或者尝试使用root用户
  • @user1844933 用户拥有测试数据库的所有权限GRANT ALL PRIVILEGES ON test.*

标签: mysql amazon-aurora mysql-5.7


【解决方案1】:

这并不是特权问题。否则,错误消息应表示为 ERROR 1044 (42000): Access denied for user xx to database xxx。更有可能是数据文件有问题。为了演示,我们可以创建一个测试数据库。

mysql> create database test_db;
Query OK, 1 row affected (0.01 sec)

mysql> use test_db;
Database changed

-- delete the test_db database directory from OS terminal. e.g in linux shell, execute:
root@test# rm -rf /path_to_mysql_datadir/test_db

-- back to mysql cli
mysql> use test_db;
ERROR 1049 (42000): Unknown database 'test_db'

另请注意,如果您直接将数据库从远程主机复制到您当前服务器的 mysql 数据目录,您可以切换到该数据库,但不能使用它的表。

-- supposing we have just copied a database named db from remote server using scp

-- back to mysql cli
mysql> use db;
Database changed

mysql> show tables;
+-------------+
| Tables_in_db |
+-------------+
| p           |
+-------------+
1 row in set (0.00 sec)

mysql> select * from p;
ERROR 1146 (42S02): Table 'db.p' doesn't exist

可以看到,在本例中,由于mysql服务器没有注册远程复制数据库的表,所以查询该表时返回错误。

【讨论】:

  • 对不起,我忘了包括这是一个 RDS,所以我们没有从操作系统级别删除数据库
【解决方案2】:

问题似乎是数据库未正确创建。

创建数据库测试;

解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-14
    • 2022-11-27
    • 2021-04-06
    • 1970-01-01
    • 2020-04-08
    • 2020-01-23
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多