具有完全相同特权的MySQL用户,FIRST可以连接,而另一个DONT

问题描述 投票:0回答:1

我将尝试用几句话来解释这里发生了什么...

我已经在Ubuntu Server(18.04)版本上创建了一个MySQL 8数据库的干净实例。该数据库运行正常,我可以使用来自另一台服务器的SSH进行本地和远程连接。

作记录,

user@server:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44

并且在连接时,我在mysql db上发出此命令SELECT HOST, USER FROM user并得到:

+---------------+------------------+
| HOST          | USER             |
+---------------+------------------+
| 192.168.0.xxx | phpMyAdmin       |
| localhost     | mysql.infoschema |
| localhost     | mysql.session    |
| localhost     | mysql.sys        |
| localhost     | root             |
+---------------+------------------+

到目前为止,很好。下一步,我创建一个特定的用户(例如,将其命名为Usr1):CREATE USER Usr1@'192.168.0.xxx' IDENTIFIED WITH mysql_native_password BY 'foo'然后重复完全相同的命令三遍,只更改用户名和密码,而不更改其他任何内容。

当我尝试远程连接(使用在用户创建中已经指定的主机)时,usr3可以连接,而user1和user2无法连接;对于这些用户,我看到此错误:

[email protected]:~$ mysql -u User1 -h 192.168.0.yyy -p
ERROR 1045 (28000): Access denied for user 'User1'@'192.168.0.xxx' (using password: YES)
[email protected]:~$ mysql -u User2 -h 192.168.0.yyy -p
ERROR 1045 (28000): Access denied for user 'User2'@'192.168.0.xxx' (using password: YES)

而且我很确定我没有写错密码!使用“ User3”,我可以连接和查询数据库,没问题。使用“ User1”或“ User2”,我收到上面的消息错误。

然后,尽管为每个用户编写了相同的命令,但我查询mysql.user表,并比较结果中的每一列;正如预期的那样,除“用户”和“密码”外,所有列的值都完全相同。为了清楚起见,我在这里显示结果,但是正如我已经提到的,各列完全相同...

+---------------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host          | User     | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                     | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+---------------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| 192.168.0.xxx | User1    | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | mysql_native_password | *                                         | N                | 2020-04-10 19:43:13   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 192.168.0.xxx | User2    | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | mysql_native_password | *                                         | N                | 2020-04-10 19:42:54   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 192.168.0.xxx | User3    | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | mysql_native_password | *                                         | N                | 2020-04-10 18:34:12   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+---------------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+

从这一点上说出了主意。有什么想法吗?

提前感谢!

mysql database-connection ubuntu-server grant mysql-8.0
1个回答
0
投票

我终于设法了解了(或有些类似于理解...)问题所在。无论为每个用户发出完全相同的命令,我创建的第一个命令都可以直接访问安装MySQL的服务器。另外两个用户是在另一台服务器上创建的,其中一台服务器安装了phpMyAdmin和Apache。

[出于任何未知(至少对我而言)原因,我使用“ root” @“ IP”创建的用户无法连接到MySQL安装,而我使用“ root” @“ localhost创建的用户”的连接很好。我使用“ root” @“ localhost”帐户删除并重新创建了用户,尽管mysql.user表上的信息仍然相同,但他们仍能够连接到数据库。

无论如何,现在我可以使用所有三个帐户进行连接,每个帐户都可以从一开始就访问特定的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.