如何通过命令行精确操作创建一个全新的数据库实例?
- 内容介绍
- 文章标签
- 相关推荐
一、为何很多人在命令行创建数据库时会卡住?
在实际工作中。开发者和 DBA 常常面临以下痛点:
- 语法不统一不同数据库的 CREATE 语句差异大,容易混淆。
- 权限不足没有足够的使用者权限,输入命令会报错。
- 连接方式不明确不清楚如何通过命令行客户端登录目标服务器。
- 创建后无法验证缺少快速检查数据库是否成功创建的手段。
- 缺少一步到位的示例文档往往只给出碎片化命令,导致操作步骤不完整。
二、通用操作流程
-
准备工作这方面,确认已安装对应客户端并获取登录凭证
-
使用命令行工具连接到目标服务器
-
以具备 CREATE DATABASE 权限的使用者执行创建语句
-
立即查询或列出库列表验证创建是否成功
-
如有需要。授予其他使用者相应权限并退出会话
三、各主流数据库的具体实现步骤
1. PostgreSQL
- 登录客户端:
- 创建数据库:
- 验证:
- 常见坑点与方法:
-
若提示
permission denied for database postgres请切换到超级管理员(如postgres) 再执行。 -
默认字符集为 UTF8,如需自定义可加参数:
CREATE DATABASE dbname ENCODING 'LATIN1'; 其实,
# psql -U <用户名> -h <主机IP> -p <端口>
Password: ********
# CREATE DATABASE new_database_name;
# \l -- 列出所有数据库
# \c new_database_name -- 切换到新库进行进一步操作
2. MySQL / MariaDB
- 登录客户端:
- 创建数据库:
- 授予权限:
- 验证:
- Pitfalls:
- 忘记加反引号导致关键字冲突;是库名包含短横线或数字开头时必须使用反引号。
-
No database selected 错误说明当前未切换到任何库,可用
\u new_database_name;或\c new_database_name;切换。
# mysql -u root -p
Enter password: ********
# CREATE DATABASE `new_database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# GRANT ALL PRIVILEGES ON `new_database_name`.* TO 'app_user'@'%' IDENTIFIED BY 'StrongPass!',# FLUSH PRIVILEGES;
# SHOW DATABASES LIKE 'new_database_name';+----------------------------+
| Database |
+----------------------------+
| new_database_name |
+----------------------------+
1 row in set
3. Microsoft SQL Server
- 打开 sqlcmd 并连接:
C:\> sqlcmd -S <服务器名称\实例> -U <用户名> -P <密码>
1>
CREATE DATABASE;Command completed successfully.
SELECT name FROM sys.databases WHERE name = N'newdatabasename';name
newdatabasename
GO
html
**注意**这方面。如果使用 Windows 身份认证,只需添加参数 `-E` 替代 `-U/-P`。
4. Oracle
...
一、为何很多人在命令行创建数据库时会卡住?
在实际工作中。开发者和 DBA 常常面临以下痛点:
- 语法不统一不同数据库的 CREATE 语句差异大,容易混淆。
- 权限不足没有足够的使用者权限,输入命令会报错。
- 连接方式不明确不清楚如何通过命令行客户端登录目标服务器。
- 创建后无法验证缺少快速检查数据库是否成功创建的手段。
- 缺少一步到位的示例文档往往只给出碎片化命令,导致操作步骤不完整。
二、通用操作流程
-
准备工作这方面,确认已安装对应客户端并获取登录凭证
-
使用命令行工具连接到目标服务器
-
以具备 CREATE DATABASE 权限的使用者执行创建语句
-
立即查询或列出库列表验证创建是否成功
-
如有需要。授予其他使用者相应权限并退出会话
三、各主流数据库的具体实现步骤
1. PostgreSQL
- 登录客户端:
- 创建数据库:
- 验证:
- 常见坑点与方法:
-
若提示
permission denied for database postgres请切换到超级管理员(如postgres) 再执行。 -
默认字符集为 UTF8,如需自定义可加参数:
CREATE DATABASE dbname ENCODING 'LATIN1'; 其实,
# psql -U <用户名> -h <主机IP> -p <端口>
Password: ********
# CREATE DATABASE new_database_name;
# \l -- 列出所有数据库
# \c new_database_name -- 切换到新库进行进一步操作
2. MySQL / MariaDB
- 登录客户端:
- 创建数据库:
- 授予权限:
- 验证:
- Pitfalls:
- 忘记加反引号导致关键字冲突;是库名包含短横线或数字开头时必须使用反引号。
-
No database selected 错误说明当前未切换到任何库,可用
\u new_database_name;或\c new_database_name;切换。
# mysql -u root -p
Enter password: ********
# CREATE DATABASE `new_database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# GRANT ALL PRIVILEGES ON `new_database_name`.* TO 'app_user'@'%' IDENTIFIED BY 'StrongPass!',# FLUSH PRIVILEGES;
# SHOW DATABASES LIKE 'new_database_name';+----------------------------+
| Database |
+----------------------------+
| new_database_name |
+----------------------------+
1 row in set
3. Microsoft SQL Server
- 打开 sqlcmd 并连接:
C:\> sqlcmd -S <服务器名称\实例> -U <用户名> -P <密码>
1>
CREATE DATABASE;Command completed successfully.
SELECT name FROM sys.databases WHERE name = N'newdatabasename';name
newdatabasename
GO
html
**注意**这方面。如果使用 Windows 身份认证,只需添加参数 `-E` 替代 `-U/-P`。
4. Oracle
...

