如何在CentOS7的服务器上部署数据库
一、前言
最近在写项目,需要在服务器上部署数据库,由于自己是第一次接触,在部署的过程花费了很多的时间,也在上查询了很多博客,没有找到完整可行的部署流程。以下是自己的总结,希望能够帮助第一次部署的小白。
虚拟机部署mysql_云服务器 ECS-阿里云帮助中心在搜索不到现有的文档后,开始在阿里云上搜索相关帮助文档和询问GPT,部署流程大家按着官方文档走即可成功,以下的内容是对流程的梳理和部分命令的解释,请配合阅读;
虚拟机部署mysql_云服务器 ECS-阿里云帮助中心https://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
二、部署流程:
设置安全组入口方向规则,开放3306端口(MySQL默认服务端口)安装和配置MySQL(自启动、重置root密码、删除匿名用户、禁止root账号远程登录、删除test库以及test库的访问权限、重写加载授权表)登录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