keyfil/教程/工具/20241119-Database安装教程.md
liuxiaohua 3bfea7cda3
Some checks failed
Publish to Confluence / confluence (push) Failing after 1m15s
[2025-05-07] 添加端口转发文档
2025-05-07 11:33:02 +08:00

4.7 KiB
Raw Blame History

数据库管理

Postgresql

安装

Ubuntu 默认支持,直接使用以下命令安装

apt install postgresql

配置

开放访问

  • 查找配置文件位置
su postgres
psql
postgres=# SHOW config_file;
  • 编辑 postgresql.conf
vi postgresql.conf
# 修改 listen_addresses 为 *
listen_addresses = '*'
  • 编辑 pg_hba.conf
# 在文件末尾增加一行
host    all             all             0.0.0.0/0               md5
  • 重启服务
sudo systemctl restart postgresql
# 或者在某些系统上可能是
sudo service postgresql restart

创建用户和数据库

  • 进入 postgres
su postgres
  • 配置
# 采用命令行工具登陆 PostgreSQL
psql

# 创建数据库
postgres=# CREATE DATABASE dolphinscheduler;
# 修改 {user}  {password} 为你希望的用户名和密码
postgres=# CREATE USER {user} PASSWORD {password};
postgres=# ALTER DATABASE dolphinscheduler OWNER TO {user};
# 退出 PostgreSQL
postgres=# \q
  • 配置开放访问(可选:开放访问步骤已经配置)

# 上面已经配置了,不需要配置
# 在终端执行如下命令,向配置文件新增登陆权限,并重载 PostgreSQL 配置,替换 {ip} 为对应的 DS 集群服务器 IP 地址段
echo "host    dolphinscheduler   {user}    {ip}     md5" >> $PGDATA/pg_hba.conf

# 重启服务
sudo systemctl restart postgresql
# 或者在某些系统上可能是
sudo service postgresql restart

测试连接

  • 配置完毕后,从外部客户端尝试连接,以验证配置是否生效。

Mysql

安装

Ubuntu 默认支持,直接使用以下命令安装

apt install mysql

配置

开放访问

  • 找到并编辑MySQL配置文件
  • MySQL默认配置文件通常位于 /etc/mysql/my.cnf/etc/my.cnf 实际需要修改的配置文件可能为 /etc/mysql/mysql.conf.d/mysqld.cnf 具体路径取决于操作系统和MySQL版本。
  • 使用文本编辑器打开配置文件找到bind-address参数。
bind-address            = 0.0.0.0
  • 重启 mysql
systemctl restart mysql

创建用户

  • 检查创建用户时密码校验条件。在创建用户前确认下密码验证规则一般必须大于等于8位
#显示创建用户的验证条件
mysql> SHOW VARIABLES LIKE 'validate_password%';
  • 创建用户
#创建用户
mysql> CREATE USER '用户名'@'%或者IP' IDENTIFIED BY '密码';

mysql> FLUSH PRIVILEGES;
# 有的文章,在该句末尾加上了with grant option,一般不用写
# 下面一段话引用自:with grant option作用_玉溪人在昌平的博客-CSDN博客
# with grant option的意思是:权限赋予/取消是关联的,
# 如将with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,
# 不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,
# grant select on table with grant option to A,A用户把此权限授予B
# 但管理员收回A的权限时B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
  • 授予权限
# 授权某个用户所有数据库所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO "用户名"@"IP/localhost/%";

mysql> FLUSH PRIVILEGES;

创建数据库

  • mysql 5.6 / 5.7
mysql -uroot -p

mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

## 可选步骤
## 修改 {user}  {password} 为你希望的用户名和密码
# mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%' IDENTIFIED BY '{password}';
# mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';

mysql> flush privileges;
  • 对于mysql 8
mysql -uroot -p

mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

## 可选步骤
## 修改 {user}  {password} 为你希望的用户名和密码
# mysql> CREATE USER '{user}'@'%' IDENTIFIED BY '{password}';
# mysql> GRANT ALL PRIVILEGES ON *.* TO '{user}'@'%';
mysql> FLUSH PRIVILEGES;

参考文档