如何在CentOS7的服务器上部署数据库

本文详细描述了在阿里云ECS上部署MySQL的流程,包括设置安全组、安装配置、创建用户和权限、官方文档利用等内容,旨在帮助初次部署者快速上手。

一、前言

最近在写项目,需要在服务器上部署数据库,由于自己是第一次接触,在部署的过程花费了很多的时间,也在优快云上查询了很多博客,没有找到完整可行的部署流程。以下是自己的总结,希望能够帮助第一次部署的小白。

虚拟机部署mysql_云服务器 ECS-阿里云帮助中心在搜索不到现有的文档后,开始在阿里云上搜索相关帮助文档和询问GPT,部署流程大家按着官方文档走即可成功,以下的内容是对流程的梳理和部分命令的解释,请配合阅读;

虚拟机部署mysql_云服务器 ECS-阿里云帮助中心icon-default.png?t=N7T8https://help.aliyun.com/zh/ecs/use-cases/manually-deploy-mysql-on-an-ecs-instance-that-runs-centos?spm=5176.12818093_-1363046575.top-nav.160.3be916d0WxSFmE&scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%40116727.S_RQW%40ag0%2BBB2%40ag0%2BBB1%40ag0%2Bhot%2Bos0.ID_116727-RL_Mysql-LOC_console~UND~help-OR_ser-V_3-P0_0

二、部署流程:

  1. 设置安全组入口方向规则,开放3306端口(MySQL默认服务端口)
  2. 安装和配置MySQL(自启动、重置root密码、删除匿名用户、禁止root账号远程登录、删除test库以及test库的访问权限、重写加载授权表)
  3. 登录Mysql,创建用户并授予权限进行远程数据库的访问

三、部分命令解释:

#创建数据库用户dmsTest,并授予远程连接权限。
create user 'dmsTest'@'%' identified by 'Ecs@123****'; 
#为dmsTest用户授权数据库所有权限。
grant all privileges on *.* to 'dmsTest'@'%'; 
#刷新权限。
flush privileges; 

创建用户:使用 CREATE USER 语句创建一个新用户,我们需要指定用户名、主机和密码。以下这个示例命令,CREATE USER 'newuser'@'host' identified by 'password';表示创建一个名为 newuser 的用户,允许从任何主机连接(使用 % 作为通配符),并设置密码为 password

授予权限:创建过用户之后,我们使用 GRANT 语句来为用户授予权限,授予的权限有很多等级。我们可以授予特定数据库的特定权限,也可以授予所有数据库的权限。以下是一些示例:

#1.授予所有权限给 newuser 对 somedatabase 数据库:
GRANT ALL PRIVILEGES ON somedatabase.* TO 'newuser'@'%';

#2.授予特定权限(如 SELECT 和 UPDATE)给 newuser 对 somedatabase 数据库的 sometable 表:
GRANT SELECT, UPDATE ON somedatabase.sometable TO 'newuser'@'%';

#3.授予所有权限给 newuser 对所有数据库和表:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

刷新权限:在创建好用户和授予权限之后,我们需要刷新一下设置的权限生效;

FLUSH PRIVILEGES;

扩展:

#1.查看当前所有用户
SELECT user, host FROM mysql.user;

#2.查看特定用户的权限,注意替换username和host:
SHOW GRANTS FOR 'username'@'host';

#3.查看所有用户的权限(较复杂的查询)
SELECT Db, User, Host, Select_priv, Insert_priv, Update_priv, Delete_priv, Execute_priv, Show_db_priv FROM mysql.db;

#4.重置用户密码
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

四、总结:

1.要学会看官方的帮助文档

2.要多使用chatGPT

<think>好的,用户的问题是在CentOS 7服务器上离线部署Nextcloud。首先,我需要整理已有的信息,看看用户提供的引用内容中有哪些有用的步骤。 根据引用[2],安装PHP 7.4需要启用特定的仓库,但离线环境下无法在线安装。所以需要提前下载好所有依赖的RPM包。用户可能需要用yum的downloadonly插件或者repotrack工具来获取所有依赖,然后复制到离线服务器上安装。 引用[1]和[4]提到了下载Nextcloud的压缩包,解压并移动到/var/www目录,然后修改权限。离线环境下,用户需要提前下载好Nextcloud的安装包,可能通过另一台有网络的机器下载,然后复制过来。解压和移动步骤应该没问题,但要注意权限设置,使用chown和chmod确保正确的所有权和权限。 引用[3]提到了配置信任域的问题。离线部署时,可能使用IP地址访问,所以需要编辑config.php中的trusted_domains,添加服务器的IP或主机名。如果用户遇到访问问题,可能需要检查这个配置,确保允许的域名或IP正确。 引用[4]还提到了数据目录的权限设置,用户需要创建数据目录并设置正确的用户组和权限,可能使用www用户或apache用户,具体取决于Web服务器的配置。需要确认用户是否使用Apache或Nginx,因为权限设置可能不同。 接下来,用户可能需要配置数据库,离线环境下需要预先安装MariaDB,并创建Nextcloud的数据库和用户。这部分在引用中没有提到,所以需要补充。用户需要手动安装MariaDB的RPM包,初始化数据库,并配置权限。 然后配置Web服务器,引用[1]中的示例是Nginx,但用户可能需要Apache的配置,或者根据现有引用中的信息提供Nginx的配置。需要生成SSL证书,离线环境下可能需要自签名证书,使用openssl命令生成。 安装完成后,用户需要通过浏览器访问,进行最后的配置,填写数据库信息和数据目录位置。这里要确保所有服务(PHP、数据库、Web服务器)都已正确启动并设置开机自启。 可能遇到的问题包括依赖包缺失,权限错误,信任域配置不正确,数据库连接问题等。需要提醒用户检查日志文件,如/var/log/nginx/error.log或Apache的日志,以及Nextcloud的日志来排查问题。 最后,生成相关问题需要考虑用户在离线部署中可能遇到的后续问题,比如如何更新Nextcloud离线版本,如何添加更多信任域,如何处理数据库迁移,如何优化性能等。</think>### 分步指南:CentOS 7 离线安装 Nextcloud #### 一、准备离线环境 1. **下载依赖包** 在可联网的机器上执行: ```bash repotrack httpd mariadb-server php php-gd php-json php-mbstring php-mysqlnd php-xml php-zip php-opcache unzip wget ``` 将生成的 RPM 包保存到`/opt/offline_packages`目录,复制到离线服务器[^2][^4]。 2. **安装本地依赖** 在离线服务器执行: ```bash yum -y localinstall /opt/offline_packages/*.rpm ``` #### 二、部署 Nextcloud 1. **手动安装包** 从官网下载的`nextcloud-xx.x.x.zip`复制到`/tmp`目录: ```bash unzip /tmp/nextcloud-*.zip -d /var/www/ chown -R apache:apache /var/www/nextcloud # 若使用Apache chmod 750 -R /var/www/nextcloud ``` 2. **创建数据目录** ```bash mkdir /data/nextcloud_data chown apache:apache /data/nextcloud_data # 根据实际Web用户调整 ``` #### 三、数据库配置 ```bash systemctl start mariadb mysql_secure_installation # 初始化数据库 mysql -u root -p > CREATE DATABASE nextcloud; > GRANT ALL ON nextcloud.* TO 'nc_user'@'localhost' IDENTIFIED BY 'your_password'; ``` #### 四、Web服务器配置(以Nginx为例) 1. **创建配置文件** ```nginx server { listen 80; server_name your_server_ip; location / { root /var/www/nextcloud; index index.php; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } ``` 2. **生成自签名证书(可选)** ```bash openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/nginx/ssl/nextcloud.key -out /etc/nginx/ssl/nextcloud.crt ``` #### 五、信任域配置 编辑`/var/www/nextcloud/config/config.php`,添加: ```php 'trusted_domains' => array ( 0 => '192.168.1.100:80', # 替换为实际IP和端口 1 => 'localhost', ), ``` #### 六、完成安装 访问`http://your_server_ip`,按提示填写: - 数据库类型:MySQL/MariaDB - 数据库用户:nc_user - 数据目录:`/data/nextcloud_data`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值