【问题标题】:How do I set the default schema for a user in MySQL如何在 MySQL 中为用户设置默认架构
【发布时间】:2012-09-07 17:24:00
【问题描述】:

有没有办法为 MySQL 中的每个用户设置默认模式?如果可以,如何设置?其中用户 x 将默认为模式 y,用户 z 将默认为模式 a。

【问题讨论】:

  • 用户是x 和z MySQL 用户,还是其他系统(例如您的操作系统)的用户?使用一种类型的客户端(例如 mysql CLI 或 PHP 数据对象)时,您只需要指定默认数据库,还是需要为所有客户端指定默认数据库?您是否需要/想要覆盖客户端在连接时指定的任何默认模式?选择一个后,是否要禁用更改默认架构?
  • MySQL 不支持模式。你的意思是“数据库”吗?
  • Oracle MySQL 在其工具中将数据库称为模式。所以微软有模式和数据库,而 MySQL 只有模式,但我们称它们为数据库。

标签: mysql default database-schema


【解决方案1】:

用户没有默认数据库。当前会话有默认数据库。

您可以使用 DATABASE() 函数获取它 -

SELECT DATABASE();

你可以使用 USE 语句来设置它-

USE database1;

您应该手动设置它 - USE db_name,或在连接字符串中。

【讨论】:

  • 该用户现在是否总是在每次登录时都将 database1 作为其默认架构,或者您必须说 USE database1;每次连接?
  • 您应该每次使用USE database 或连接字符串设置默认数据库。 MySQL 在没有默认数据库的情况下创建新会话。
  • 是否可以动态使用USE?类似USE (SELECT schema FROM blahblah WHERE blahblah)
【解决方案2】:

如果您的用户有本地文件夹,例如Linux,在您的用户主文件夹中,您可以创建一个 .my.cnf 文件并提供访问该服务器的凭据。例如:-

[client]
host=localhost
user=yourusername
password=yourpassword or exclude to force entry
database=mygotodb

然后,Mysql 将为每个用户帐户打开此文件,读取凭据并打开选定的数据库。

不确定在 Windows 上,我从 Windows 升级,因为不久前我需要整个房子,而不仅仅是 Windows(又名 Linux)。

【讨论】:

  • 我相信这两个答案在某种程度上都是正确的。 @Gary 指出了避免我们每次想要访问数据库时都设置架构的解决方案,而 Devart 给出了使用它一次的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2011-07-07
  • 2015-08-25
相关资源
最近更新 更多