【问题标题】:MySQL: 'show databases;` command returning different results depending on how it is started.MySQL:'show databases;' 命令根据启动方式返回不同的结果。
【发布时间】:2014-11-10 18:12:26
【问题描述】:

我对 MySQL 比较陌生,我当前的设置遇到了一些问题。根据我启动 mysql 提示符的方式,会影响使用 show databases; 命令可以看到的数据库。在方法一(下)中,我只能看到两个数据库。在方法二(也在下面)中,我可以看到 5。

这给我带来了很多问题,因为我认为我丢失了一些数据库。我相信它也导致了登录 phpMyAdmin 的问题。

我的问题:为什么我在每种方法中使用相同的命令会看到不同的结果?

  • 设置:OS Mavericks (10.9.4)

方法一

在这种方法中,我已经使用“系统偏好设置”中 MySQL 窗格中的“启动 MySQL 服务器”按钮启动了 MySQL

然后我用

(bias_experiment)localhost:bias_experiment brendan$ /usr/local/mysql/bin/mysql -v

它给了我一些版本反馈并打开mysql> 命令提示符

欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。你的 MySQL 连接 ID 为 378 服务器版本:5.6.20 MySQL 社区服务器 (GPL)

版权所有 (c) 2000, 2014,Oracle 和/或其附属公司。所有权利 保留。

Oracle 是 Oracle Corporation 和/或其 附属公司。其他名称可能是其各自所有者的商标。

读取历史文件 /Users/brendan/.mysql_history 输入 'help;'要么 '\h' 寻求帮助。输入 '\c' 清除当前输入语句。

mysql> \q 写入历史文件 /Users/brendan/.mysql_history 再见 (bias_experiment)localhost:bias_experiment 布伦丹$ /usr/local/mysql/bin/mysql -v 欢迎使用 MySQL 监视器。命令 以 ; 结尾或\g。您的 MySQL 连接 ID 是 401 服务器版本: 5.6.20 MySQL 社区服务器(GPL)

版权所有 (c) 2000, 2014,Oracle 和/或其附属公司。所有权利 保留。

Oracle 是 Oracle Corporation 和/或其 附属公司。其他名称可能是其各自所有者的商标。

读取历史文件 /Users/brendan/.mysql_history 输入 'help;'要么 '\h' 寻求帮助。输入 '\c' 清除当前输入语句。

mysql>

show databases; 命令只返回两个数据库

mysql> show databases;
--------------
show databases
--------------

+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.00 sec)

mysql> 

方法二

我使用下面的命令来启动 MySQL

(bias_experiment)localhost:src brendan$ /usr/local/mysql/support-files/mysql.server start
Starting MySQL
 SUCCESS! 
(bias_experiment)localhost:src brendan$ 

然后我用

(bias_experiment)localhost:src brendan$ mysql -u root -p
Enter password: 

我输入我的root密码,显示如下

欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。你的 MySQL 连接 ID 为 472 服务器版本:5.6.20 MySQL 社区服务器 (GPL)

版权所有 (c) 2000, 2014,Oracle 和/或其附属公司。所有权利 保留。

Oracle 是 Oracle Corporation 和/或其 附属公司。其他名称可能是其各自所有者的商标。

键入“帮助;”或 '\h' 寻求帮助。输入 '\c' 清除当前输入 声明。

mysql>

但是,发出相同的show databases; 命令会返回与上述不同的结果。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| django_db          |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

谁能告诉我为什么我会看到不同的结果?谢谢

【问题讨论】:

  • 您使用的是不同的用户名,首先您使用brendan 进行身份验证,其次您使用root 进行身份验证

标签: mysql


【解决方案1】:

这与您如何启动服务器无关,而与您如何登录服务器无关。

在您的第一个示例中,当您在未明确指定用户名的情况下登录时,您使用的是当前 Linux 用户 brendan。在第二种情况下,您将用户明确指定为root

root 可以看到您看到的其他数据库,brendan 看不到。

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多