菜鸟科技网

命令行如何建立数据库?

在命令行中建立数据库是数据库管理中的基础操作,不同数据库管理系统(如MySQL、PostgreSQL、SQLite等)的命令和步骤略有差异,但核心流程相似,以下以MySQL和PostgreSQL为例,详细介绍通过命令行建立数据库的完整步骤、注意事项及相关操作技巧。

命令行如何建立数据库?-图1
(图片来源网络,侵删)

准备工作

在开始操作前,需确保已安装对应的数据库管理系统,并配置好环境变量,以MySQL为例,需安装MySQL Server并启动服务,使用root用户或有足够权限的用户登录;PostgreSQL则需初始化数据库集群(通过initdb命令)并启动postgresql服务。

MySQL数据库建立

登录MySQL

打开终端,使用以下命令登录MySQL服务器(需提前安装MySQL客户端):

mysql -u root -p

输入密码后进入MySQL命令行界面。

创建数据库

使用CREATE DATABASE语句创建数据库,需指定数据库名称,并可设置字符集和排序规则(推荐使用utf8mb4以支持多语言和特殊字符):

命令行如何建立数据库?-图2
(图片来源网络,侵删)
CREATE DATABASE my_database 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

验证创建

执行SHOW DATABASES;查看所有数据库,确认新数据库已存在:

SHOW DATABASES;

选择数据库

创建后需使用USE语句选择当前操作的数据库:

USE my_database;

创建表(可选)

在数据库中创建表,

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

常见问题与解决

  • 错误码1044(Access denied):用户权限不足,需通过GRANT语句授权,
    GRANT ALL PRIVILEGES ON my_database.* TO 'username'@'localhost';
    FLUSH PRIVILEGES;
  • 字符集错误:若创建时未指定字符集,可通过ALTER DATABASE修改:
    ALTER DATABASE my_database CHARACTER SET utf8mb4;

PostgreSQL数据库建立

登录PostgreSQL

使用psql命令登录,默认需提供超级用户(如postgres):

命令行如何建立数据库?-图3
(图片来源网络,侵删)
psql -U postgres

创建数据库

使用createdb命令(需在系统终端执行)或CREATE DATABASE SQL语句(在psql中执行):

CREATE DATABASE my_database 
WITH 
    ENCODING 'UTF8'
    LC_COLLATE = 'zh_CN.UTF-8'
    LC_CTYPE = 'zh_CN.UTF-8';

验证创建

在psql中执行\l查看所有数据库:

\l

连接数据库

使用\c命令连接到新创建的数据库:

\c my_database

创建表(可选)

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

常见问题与解决

  • 错误角色“postgres”不存在:需检查PostgreSQL用户配置,或使用sudo -u postgres psql登录。
  • 权限不足:非超级用户需通过GRANT授权,
    GRANT ALL PRIVILEGES ON DATABASE my_database TO username;

SQLite数据库建立

SQLite无需服务器,直接通过命令行工具创建数据库文件:

sqlite3 my_database.db

进入SQLite命令行后,可直接执行SQL语句创建表,

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE
);

退出时使用.exit命令,数据库文件将自动保存在当前目录。

通用注意事项

  1. 权限管理:避免使用root或超级用户直接操作生产数据库,应创建专用用户并分配最小必要权限。
  2. 备份与恢复:创建数据库前建议备份现有数据,MySQL可通过mysqldump备份,PostgreSQL使用pg_dump
  3. 命名规范:数据库名称应避免使用特殊字符和保留字,建议使用小写字母加下划线。
  4. 字符集统一:确保数据库、表、字段的字符集一致,避免乱码问题。

命令行操作技巧

  • 批量执行SQL:通过重定向文件执行多个SQL语句,
    mysql -u root -p < schema.sql
  • 查看帮助:MySQL中使用HELP;,PostgreSQL中使用\?,SQLite中使用.help
  • 导出数据库结构:MySQL的SHOW CREATE DATABASE my_database;可查看创建语句。

相关问答FAQs

Q1:如何修改已创建数据库的字符集?
A1:在MySQL中,使用ALTER DATABASE语句修改,

ALTER DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

在PostgreSQL中,需使用ALTER DATABASE并重新设置编码,

ALTER DATABASE my_database SET LC_COLLATE = 'zh_CN.UTF-8';

Q2:命令行创建数据库时如何避免输入密码暴露?
A2:可通过配置文件或环境变量存储密码,以MySQL为例,在用户目录创建.my.cnf文件(需设置权限为600):

[client]
user = your_username
password = your_password

之后直接执行mysql -u your_username即可自动读取密码,避免在命令行中明文输入。

分享:
扫描分享到社交APP
上一篇
下一篇