![](https://cdn.zimug.com/wx-zimug.png)
## 一、环境说明
阿里云ECS服务器,系统为centos7.2
## 二、删除原来的数据库
centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下:
~~~
[root@localhost ~]# rpm -qa|grep mariadb // 查询出来已安装的mariadb
[root@localhost ~]# rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件
~~~
然后现在开始将当前目录切换到root也就是: cd ~
## 三、下载与安装MySQL
这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。
1.安装MySQL官方的yum repository
~~~
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
~~~
如果是安装mysql8版本,用这个命令
~~~
wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
~~~
2.下载rpm包
~~~
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
~~~
如果是安装mysql8版本,用这个命令
~~~
yum -y install mysql80-community-release-el7-7.noarch.rpm
~~~
3.安装MySQL服务
~~~
[root@localhost ~]# yum -y install mysql-community-server
~~~
这个过程时间会相对长一些,最后会出现个complete!
4.启动MySQL服务
> 重要:如果是mysql8,一定要先去完成`/etc/my.cnf`文件的修改,再启动mysql服务。否则后期修改配置会报错,比如:表名大小写不区分的配置。
~~~
[root@localhost ~]# systemctl start mysqld.service
~~~
可以使用下面的命令查看启动状态
~~~
systemctl status mysqld.service
~~~
![](https://img.kancloud.cn/28/43/28433c507731c1e445ee9b48867f1510_1659x290.png)
还有几个关于MySQL常用的命令:
~~~
重启:systemctl restart mysqld.service
停止:systemctl stop mysqld.service
~~~
还可以配置MySQL的开机自动启动:
~~~
[root@woitumi-128 ~]# systemctl enable mysqld
[root@woitumi-128 ~]# systemctl daemon-reload
~~~
安装完成之后默认配置文件路径:
* 配置文件:/etc/my.cnf
* 日志文件:/var/log/mysqld.log
* 服务启动脚本:/usr/lib/systemd/system/mysqld.service
* socket文件:/var/lib/mysql/mysql.sock
* pid文件:/var/run/mysqld/mysqld.pid
## 四、修改 root 本地账户密码
mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。
```
grep 'temporary password' /var/log/mysqld.log
```
![](https://img.kancloud.cn/b5/7d/b57d723e30f07ba60842dfb4567b1952_1339x80.png)
首次通过初始密码登录后,使用以下命令修改密码
~~~
mysql -u root -p
~~~
~~~
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的root密码';
~~~
~~~
mysql> flush privileges;
~~~
> 注意:mysql 5.7 默认安装了密码安全检查插件(validate\_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。
## 五、新建数据库和远程访问用户
数据库:dongbbdb
用户:dongbb
~~~
CREATE DATABASE `dongbbdb` default character set utf8 collate utf8_general_ci;
CREATE USER 'dongbb'@'%' IDENTIFIED BY '你的密码';
GRANT ALL ON dongbbdb.* TO 'dongbb'@'%' IDENTIFIED BY '你的密码'; //只有执行了这一句才可以远程登陆
FLUSH PRIVILEGES;
~~~
添加完成之后,用`mysql -u dongbb -p` 登录试一下。
## 六、修改必要的配置
mysql安装之后默认的字符集是latin,我们修改为UTF-8。可以使用status命令查看。
![](https://img.kancloud.cn/9a/f9/9af9148147fef1166af00c1fa5397bb1_1465x463.png)
~~~
sudo vim /etc/my.cnf
~~~
修改字符编码,在client,mysqld,mysql配置段,分别追加如下编码信息。`lower_case_table_names = 1`表示SQL表名大小写不敏感,即大写小写都行。
~~~
[client]
default-character-set = utf8
~~~
~~~
[mysqld]
character-set-server=utf8
lower_case_table_names = 1
~~~
~~~
[mysql]
default-character-set=utf8
~~~
重启mysql,再次查看status,变为utf8编码
~~~
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
~~~
## 七、防火墙开放3306端口(除非数据库有对外开放访问的需求,否则不做要做)
> 我的2020年新买的阿里云服务器默认没有启动防火墙,运行下面的命令,显示:FirewallD is not running(防火墙没有运行)。既然阿里云没给开防火墙,我觉得也是有一定原因的。比如:他们有自己的安全组策略等。我就不开了防火墙了。如果你希望开启防火墙并配置3306开放端口。执行下面命令。
1. 开启防火墙
~~~bash
systemctl start firewalld
~~~
2. 查看防火墙状态,显示running即开启成功
~~~bash
systemctl status firewalld
~~~
添加端口:
1、运行命令:
firewall-cmd --get-active-zones
运行完成之后,可以看到zone名称,如:public
2、执行如下命令命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、重启防火墙,运行命令:
firewall-cmd --reload
4、查看端口号是否开启,运行命令:
firewall-cmd --query-port=3306/tcp
5、查看所有开放端口
firewall-cmd --list-ports
## 八、配置阿里云安全组开放策略(除非数据库有对外开放访问的需求,否则不做要做)
![](https://img.kancloud.cn/8c/6c/8c6c1bee36cb677d6ed1ca32df9cf26f_1886x488.png)
![](https://img.kancloud.cn/63/5b/635b8b0f2a69b5f3c62d6fe71d98cf57_707x743.png)
## 九、导入数据库建表脚本及示例数据
![](https://img.kancloud.cn/f4/38/f438f99222a27ff2dfa747be62bce548_429x500.png)
- 开发过程文档内容介绍
- 作者的其他作品推荐
- vue深入浅出系列
- 手摸手教你学Spring Boot2.0
- Spring Security-JWT-OAuth2一本通
- 实战SpringCloud微服务从青铜到王者
- 项目文档
- DongBB项目介绍
- 子模块介绍
- 环境部署
- 阿里云CentOS7-搭建Mysql
- 阿里云CentOS7-JDK安装
- 阿里云CentOS7-安装nginx
- 部署SpringBoot后端应用
- 前端vue打包部署nginx
- 关于学员若干问题的解答
- 代码生成器(独立开源项目)
- 设计宗旨及思路
- 代码生成器的安装
- 代码生成器的使用方法
- 基础框架搭建
- 【前端】搭建vue前端框架
- 【前端】目录结构及配置调整
- 【前端】封装及使用axios
- 【后端】IDEA多模块springboot项目
- 【后端】统一接口响应的数据结构
- 实现JWT认证授权
- 【后端】数据库权限模型设计
- 【后端】jwt-spring-boot-starter说明
- 【后端】JWT认证及令牌刷新接口
- 【前端】开发用户密码登录页面
- 【前端】开发登录认证功能
- 【前端】JWT令牌的存储携带与刷新
- 【问题】跨域访问等问题的处理
- 系统布局菜单Tab前端实现
- 【前端】整体布局的实现
- 【前端】侧边栏多级菜单
- 【前端】菜单侧边栏收缩
- 【前端】JSON数据加载菜单
- 【前端】菜单项前端路由及组件
- 【前端】结合vuex实现导航tab
- 以用户信息为例讲接口鉴权设计
- 【前端】开发个人中心相关功能
- 【前端】导航Tab的功能优化
- 【后端】系统接口多层鉴权设计
- 【后端】持久层通用模块
- 【后端】以用户信息为例讲接口开发
- 【前端】用户信息接口与加载进度条
- 【综合】HTTP状态码与业务统一
- 组织管理功能-树形结构精讲
- 【前端】理解树形表格展示结构
- 【后端】Mysql树形结构数据封装
- 【功能】Table查询重置的实现
- 【前端】树形下拉单选组件封装
- 【后端】增删改服务及接口实现
- 【前端】增删改功能的前端实现
- 菜单管理与接口分类管理
- 菜单管理功能类比实现(树形)
- 接口分类管理类比实现(树形)
- 角色管理与权限分配
- 【后端】角色管理CURD及接口定义
- 【前端】角色管理CURD
- 【前端】树形多项勾选组件封装
- 【后端】权限初始化及持久化接口
- 【前端】实现角色权限的分配
- 用户管理功能实现
- 【后端】用户管理后端接口及服务
- 【前端】查询分页与日期组件
- 【前端】使用组织树查询用户
- 【前端】增删改Mixin代码复用
- 【功能】用户角色分配功能开发
- 【功能】密码重置功能开发
- 【功能】登录提示修改默认密码
- 再谈菜单查看及接口访问权限
- 【使用】配置菜单接口角色用户权限
- 【后端】按数据库权限查询菜单
- 【前端】菜单栏数据加载渲染
- 全局配置参数功能设计与使用
- 【后端】数据库全局参数配置接口
- 【前端】加载及使用全局配置参数
- 【功能】参数配置管理功能开发
- 数据字典设计及使用
- 【后端】数据库数据字典接口
- 【前端】数据字典数据的加载
- 【前端】DictSelect组件封装与使用
- 【功能】数据字典管理功能的开发
- 1.0里程碑(优化补充调整)
- Header左侧样式优化
- Header右侧样式优化
- 为二级菜单增加图标
- 【bug修正】导航路由逻辑判断
- 引入MybatisPlus
- api函数定义模块拆分
- 通用字段自动填充
- 去掉无意义root节点展示
- 禁用状态设置
- 用户禁用状态
- 角色组织菜单接口状态
- 各种禁用状态背后的规则
- 应用缓存设计与实现
- 应用缓存设计定义
- EhCache缓存集成
- 如何保证缓存一致性(一)
- 如何保证缓存一致性(二)
- 如何保证缓存一致性(三)
- 换成分布式redis缓存
- 整合动态菜单与动态路由
- 需求说明
- 实现隐藏菜单功能
- 按权限加载前端路由