MySQL 显示当前连接信息

Posted

技术标签:

【中文标题】MySQL 显示当前连接信息【英文标题】:MySQL show current connection info 【发布时间】:2010-08-31 22:34:22 【问题描述】:

我在 mysql 终端会话中,但我不知道我连接到什么服务器,或者我连接到什么数据库。

是否有一个 MySQL 命令可以告诉我我现在使用的主机、端口、用户名和数据库?

【问题讨论】:

可以使用“show variables like 'port'”获取端口 输入“\s”获取当前数据库a的信息 mysql cli 是否可以像 mariadb MySQL [sys]> 一样总是显示当前的数据库名称 【参考方案1】:

您可以使用一些 MYSQL 函数。像这个解决用户的:

SELECT USER();

这将返回类似root@localhost 的内容,以便您获得主机和用户。

要获取当前数据库,请运行以下语句:

SELECT DATABASE();

其他有用的功能可以在这里找到:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html

【讨论】:

【参考方案2】:

您可以在 MySQL 客户端中使用 status 命令。

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.5.8, for Win32 (x86)

Connection id:          1
Current database:       test
Current user:           ODBC@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.5.8 MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3306
Uptime:                 7 min 16 sec

Threads: 1  Questions: 21  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.48
--------------

mysql>

【讨论】:

是否可以通过 php 从 MySQL 查询中输出这些数据? 您使用哪个版本来运行此命令?我认为您在 mysql 客户端和 mysqladmin 程序之间感到困惑。 mysqladmin -u root -p status 这是我的输出: Uptime: 79625 Threads: 3 Questions: 9903 Slow queries: 1 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.124 它不显示数据库的信息也在连接中。 如果我在navicat的cmd上执行这个命令,它给了我1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'status' at line 1错误。但是如果我在 mysql 客户端上运行它就可以了。【参考方案3】:

如果您想知道运行 Mysql 的本地主机的端口号,您可以在 MySQL 命令行客户端上使用此查询 --

SHOW VARIABLES WHERE Variable_name = 'port';


mysql> SHOW VARIABLES WHERE Variable_name = 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

它将为您提供 MySQL 正在运行的端口号。


如果你想知道你的 Mysql 的主机名,你可以在 MySQL 命令行客户端上使用这个查询 --

SHOW VARIABLES WHERE Variable_name = 'hostname';


mysql> SHOW VARIABLES WHERE Variable_name = 'hostname';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| hostname          | Dell  |
+-------------------+-------+
1 row in set (0.00 sec)

它会给你 mysql 的主机名。


如果你想知道你的 Mysql 的用户名,你可以在 MySQL 命令行客户端上使用这个查询 --

select user();   


mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

它会给你mysql的用户名。

【讨论】:

或者您可以使用 Yousui 的mysql> status 答案,它在一个命令中返回所有这些。 优穗的回答不包括主机名。此外,如果您只想返回指定值之一而不是整个列表,这些命令非常有用。

以上是关于MySQL 显示当前连接信息的主要内容,如果未能解决你的问题,请参考以下文章

mysql show status查看信息命令

MySQL查看当前正在连接的会话执行过的SQL

MySQL

mysql和clickhouse 查看当前链接进程信息

MySQL之MySQL:prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库

MySQL之MySQL:prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库