MySQL多数据库设置

时间:2014-11-07 19:03:31

标签: mysql database phpmyadmin multiple-databases

我已经搜索了这个问题的答案,我似乎发现的所有问题都是在一个数据库中使用多个数据库或多个表是否更好。这不是我的问题。

问题1.
我想在我当前的数据库旁边设置一个新数据库,但不知道如何操作。我想为用户提供对DB2的完全管理员访问权限而不会看到DB1。通过这种方式,我可以托管朋友的网站,他们可以根据需要创建和删除任意数量的表,而不会干扰我自己的数据库。我也可以将它用于不安全且不应存在于主数据库中的演示站点。

我认为我可以使用虚拟机轻松地执行此操作并运行单独的MySQL实例,但我的资源有限,因此这不是一个选项。

我想以两种方式之一设置它。我更希望“server.example.com”托管两个数据库并根据用户登录打开正确的数据库。如果不是,我可以将其路由到server1.example.com和server2.example.com。

问题2.
如果这是不可能的,我想知道如何在续集专业版中正确设置对单个数据库的限制访问。我一直在搞乱它,到目前为止更喜欢PHPMyAdmin。出于某种原因,如果我设置一个没有权限的新用户,他们可以完全访问我的'information_schema'和'test'表,但无法创建新表。我不希望其他用户访问这些表,我希望他们能够设置自己的表。我想设置它,以便新用户可以创建有限数量的表,只能查看和编辑这些表。我似乎无法找到相关信息。

即使我的第一个问题是可能的,我也想知道问题2的答案。我已经搜索了很长时间,无法在任何地方找到可靠的信息。也许我的大脑已经累了......

4 个答案:

答案 0 :(得分:1)

您可以设置多个mysql实例,但根据您的情况,最好在同一个实例中创建不同的数据库。

您可以创建数据库,然后添加只有权访问操作数据库的用户,而不是其他任何内容。

基本上,层次结构如下:

Mysql (root or any other super user can see everything)
- Your DB
  - Your Users
    - Your tables/functions/Procedures/etc
- Their DB
  - Their Users
    - Their tables/functions/procedures/etc.

您基本上将每个访问权限分开,而在PHPMyAdmin中则非常容易。步骤是:

  1. 添加数据库enter image description here
  2. 添加用户,将他们限制在该数据库中,只允许您想要提供给该用户并仅提供给该数据库。 (Guide here

答案 1 :(得分:0)

您可以使用MySQL中的GRANT向不同的用户授予对不同数据库的访问权限。

https://dev.mysql.com/doc/refman/5.1/en/grant.html拥有您需要的信息。

你能做的最简单的是

CREATE DATABASE db_for_user_a
CREATE DATABASE db_for_user_b
GRANT ALL PRIVILEGES ON db_for_user_a.* TO user_a IDENTIFIED BY 'user_a_s_password'
GRANT ALL PRIVILEGES ON db_for_user_b.* TO user_a IDENTIFIED BY 'user_b_s_password'

答案 2 :(得分:0)

您需要提供有关设置的更多信息,以回答专门设置多个数据库的问题。

服务器通常具有使用专门设计用于在这些平台上运行的软件创建多个数据库的方法(Apache和Windows服务器是一些可以运行WAMP或phpMyAdmin等软件来管理这些数据库的服务器。)

并且在回答权限时:是的,您可以指定对一个,两个或两个数据库都没有特定权限的用户。但是,您也可以设置特定于表的角色和操作。对于微软的管理工作室来说,这一点更为明显,在Mysql中你最初可能想要使用像Mysql Workbench这样的东西。

例如,在cPanel上,如果主机允许,您可以添加新数据库。在Windows上,您将不得不使用其他工具来设置新数据库。

在回答您的第一次查询时,每个数据库都需要自己的连接,并且您可以执行数据库范围的操作,例如迁移和备份。根据经验,只有在不同的数据库中保存完全独立的数据,除非绝对有理由将信息类型分成不同的数据库以提高效率。通常,除了更复杂的情况之外,您不会在不同数据库之间关联数据。

我相信你可以创建单独的数据库并在续集专业中单独使用它们。大多数平台都可以选择在数据库列表中创建新的数据库。

答案 3 :(得分:0)

嗯,我觉得我在这里混淆了一些东西。我为此道歉。我在呼叫数据库'表'。

我想要允许用户创建新数据库,但却看不到其他人创建的数据库。我想我可以通过限制权限并允许用户访问一个或两个数据库来完成这项工作。

似乎PHPMyAdmin有一些比Sequel Pro更容易使用的选项。我过去只是简单地使用过它,但我会再给它一次。

至于命令行的东西,我喜欢能够在命令行工作,但我不知道所有的命令,所以它通常很难弄清楚,手册页并不是那么有用

感谢您的回答,对不起我的新手问题。