1. 基本语法与利用
MySQL CREATE DATABASE 语句格式如下:
CREATE DATABASE database_name
CHARACTER SET charset_name
COLLATE collation_name;
个中:
- database_name:是字符串,表示要创建的数据库的名字。
- charset_name 和 collation_name:可选地,分别指定编码和排序。有关可用的编码和排序,请拜会 MySQL 的文件 Handler and Storage Engineering Manual。
这是一个大略例子,用于创建一个 called "employees" 并利用 utf8 作为编码和英文排序:
CREATE DATABASE employees
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
2. 创建数据库并同时创建用户(利用 INNODB)
如果用户希望同时在创建数据库时立即创建一个用于该数据库的用户,可以利用下面的SQL命令:
CREATE DATABASE employees
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
COLLATE utf8_bin;
CREATE USER 'john' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON employees. TO 'john';
FLUSH PRIVILEGES;
实行这些命令后,用户 "john" 将拥有对该数据库的全部管理权限。
把稳:上面命令利用的是InnoDB存储引擎,它是 default 的存储引擎,可以管理大量数据量。
3. 创建数据库并同时创建角色及用户
如果系统中有多个用户须要访问同一数据库,可以利用一种更加高效的办法,即创建用户角色,为角色付与某些权限,然后用户只须要被 granted 该角色即可同时得到干系权限。
首先定义角色:
DELIMITER //
CREATE ROLE user_role //
GRANT ALL PRIVILEGES ON employess. TO user_role //
DELIMITER ;
然后利用 CREATE USER 和 GRANT 命令创建用户并且付与该角色,就可以实现全部用户同步访问数据库中的所有表而无需单独付与权限:
CREATE USER 'user1' IDENTIFIED BY 'password1';
CREATE USER 'user2' IDENTIFIED BY 'password2';
GRANT user_role TO 'user1','user2';
FLUSH PRIVILEGES;
4. 冗余创建库
在某些情形下,为了担保系统的高可用性与数据安全性,一个数据库可能须要包含多个冗余副本。MySQL 供应了一个简便的方法来创建完备相同的数据库副本,如下所示:
CREATE DATABASE employees;
CREATE DATABASE employees1 LIKE employees;
OR
CREATE DATABASE employees LIKE employees;
结论
在本文中,我们学习了如何利用 MySQL CREATE DATABASE 命令来轻松创建数据库和用户,并采取高效的角色管理办法。通过理解这些内容,你将能够更好地理解和操作 MySQL 数据库系统。为了深入理解 MySQL,请参阅 MySQL 官方文档来理解更多的上风和功能。