奇技淫巧系列 手动初始化数据库:新建空库以及给对应用户赋予权限
本文最后更新于 119 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

我们在部署一个docker应用的时候,经常会遇到的一个场景,就是该docker应用需要用到数据库。这时候我们不外乎有两种选择:
1、使用docker compose命令,关联的新建一个只为这个docker使用的新数据库
2、利旧已有的数据库

我看网上很多博主都是推荐docker compose的方式,当然这种方式也的确简单,只要新建一个yml文件,然后把网上提供的内容粘贴进去保存一下,最后在yml文件对应的目录里运行一下docker-compose up即可拉起相关的所有容器,而且在protainer的管理界面看起来也很清爽,很适合初学者。

不过对于一个致力于搭建家庭数据中心的强迫症患者来说,每次需要都新建一个数据库容器,不如杀了我算了,所以我自然选择了第2种选择。那么这里就需要解决如何在已有数据库中为这个docker应用新建一个库并且新建一个对这个库有完全管理权限的用户,所以这篇文章就来解决这个问题。

注:本文假设使用的是mariadb数据库,数据库客户端使用DBeaver社区版(谁用谁知道好系列,感谢毛儿推荐)。docker应用就以next-terminal为例(这个堡垒机的搭建参见:docker系列 搭建基于next-terminal的开源堡垒机 )。

初始化数据库

方式1:使用DBeaver完成新库初始化

首先,下载并安装适合自己系统的DBeaver:DBeaver社区版官网下载地址。然后,登录进入对应的mariadb数据库之后,在数据库上右键选新建数据库:

image.png

然后创建数据库,一般只需要指定数据库名,其他使用默认值就好了:
image.png

这样next-terminal使用的数据库就建好了,然后在用户上点右键选新建用户:
image.png

然后指定需要创建的用户名及密码,然后点击右下角的保存:
image.png

注:主机的%表示该用户名可以从任意IP地址连接,当然也可以使用localhost指定只能从本机登录,或者使用某个具体的ip地址,这些大家根据实际情况调整即可。

点击保存以后会弹出如下界面,直接点击执行:
image.png

新建完next-terminal用户,接下来就是将next-terminal库的操作权限赋予这个用户了。在用户里选择刚刚创建的next-terminal@%,然后在右上选择架构权限,并以及从左到右选择:jumpserver–%(All)–全部选择,然后点击右下方的保存,如下图红框:
image.png

接着会弹出下框,直接点击右下角的执行即可:
image.png

注:一定要先创建用户,然后再赋权,不然会报错。

方式2:用命令行完成新库初始化


该种方式需要使用到mysql命令,需要在使用该命令能够连接到数据库的主机上运行,这里通常有2种场景:
1、在主机上使用源码方式安装数据库

在主机上通过宝塔面板的软件商店安装数据库或者使用apt方式安装的数据库都是属于这种场景。这时候只需要在主机上直接运行mysql命令即可。
2、使用docker方式安装数据库

这种方式由于数据库是以docker方式部署,所以需要进入docker内部环境运行mysql命令,进入docker内部命令如下:

docker exec -it yourDBcontainer /bin/bash

注:yourDBcontainer可以是container ID,也可以是container name。


运行mysql命令以root身份登录数据库:

mysql -u root -p -h your-database-ip

然后运行如下命令完成新建库以及对应的账号:

create database 'next-terminal' default charset 'utf8mb4';
create user 'next-terminal'@'%' identified by 'password';
grant all on next-terminal.* to 'next-terminal'@'%';
flush privileges;

注:第二行identified by后面的password是新建账号的密码,请根据实际情况修改。

大功告成。

后话

除了使用DBeaver(或者其他类似的专业数据库管理工具),也可以直接使用phpmyadmin完成mariadb数据库的初始化操作,只是考虑到以后的运维工作,还是DBeaver使用更加方便,毕竟phpmyadmin只能用于mysql或者mariadb,而DBeaver还可以用于PostgreSQL、SQLite、Microsoft SQL Server和Oracle等其他数据库,而作为一个致力于打造专业”家庭数据中心”的男人,怎么可能只使用一种数据库?

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       
error:
zh_CN
春节
快乐