如何创建mysql数据库:两种主流方式
如何创建mysql数据库分为命令行创建与图形客户端创建两条路径,命令行适合服务器无桌面环境、自动化脚本批量执行场景,图形客户端适合本地调试、需要可视化查看表结构的开发人员,你需要先拥有MySQL服务的访问账号,账号需要附带CREATE权限,没有该权限会直接报权限拒绝报错,MySQL8.0版本默认密码认证插件为caching_sha2_password,部分旧客户端不支持这个插件,连接前需要提前确认客户端兼容情况。
mysql数据库命令行创建
你先打开终端或者服务器shell,输入mysql-u用户名-p,回车后输入密码进入MySQL交互终端,登录成功之后,执行CREATEDATABASE库名;这条基础语句,库名只能使用字母、数字、下划线,不能包含空格和中文,库名外层可以加反引号包裹,用来规避和保留关键字重名的情况。想要指定字符集和排序规则,就写成CREATEDATABASE库名DEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;utf8mb4完整支持emoji表情字符,是现在大多数业务的优先选择。
执行完创建语句后,输入SHOWDATABASES;可以查看全部数据库,核对目标库是否生成成功,想要切换到新建的数据库里建表,执行USE库名;就可以完成切换。不要直接使用utf8字符集,MySQL里的utf8只支持最多三个字节字符,存储表情会出现乱码或者截断。
权限控制要同步配置,新建数据库不会自动给账号分配访问权限,你执行GRANTALLPRIVILEGESON库名.*TO'用户名'@'访问地址';,再执行FLUSHPRIVILEGES;刷新权限,访问地址写localhost代表只能本机连接,写%代表允许任意地址连接,生产环境尽量不要使用%。
mysql数据库图形客户端创建
主流图形工具包含Navicat、DBeaver,DBeaver是开源免费工具,不需要付费授权,适配Windows、macOS、Linux多系统。打开客户端后先新建连接,填写MySQL服务地址、端口、账号密码,测试连通性通过之后保存连接。右键点击连接名称,选择新建数据库,在弹窗里填写数据库名称,下拉选择字符集和排序规则,确认后即可完成创建。
图形方式自带预览校验,填写名称时工具会即时提示非法字符,还能直接预览字符集对应的排序规则差异,适合不熟悉SQL语法的使用者。图形客户端同样受账号权限约束,账号缺少CREATE权限时,新建数据库选项会置灰无法点击。
| 创建方式 | 适用场景 | 优点 | 限制 |
|---|---|---|---|
| 命令行SQL | 服务器、脚本自动化 | 可嵌入脚本,轻量 | 需要掌握基础SQL语法 |
| 图形客户端 | 本地开发、调试查看 | 可视化操作,上手简单 | 依赖客户端软件,不适合自动化 |
生产环境MySQL服务一般部署在远程服务器,服务器防火墙默认拦截3306端口,外部客户端无法发起连接,你需要在服务器安全组放行对应端口,同时检查MySQL配置文件bind-address参数,该参数控制MySQL监听的网卡地址。
库名区分大小写由系统变量lower_case_table_names控制,Linux系统默认值为0,库名大小写敏感,Windows系统默认值为1,库名统一转为小写,同一个脚本在不同系统运行,可能出现找不到数据库的情况。
先核对权限。
数据库创建操作本身不会生成数据表,库只是一个容器,表、索引、数据都需要在库内部单独创建,新建空数据库不占用大量磁盘空间,随着表和数据写入,占用空间才会逐步上涨。
