
## 一、環境說明
阿里云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
~~~

還有幾個關于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
```

首次通過初始密碼登錄后,使用以下命令修改密碼
~~~
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命令查看。

~~~
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
## 八、配置阿里云安全組開放策略(除非數據庫有對外開放訪問的需求,否則不做要做)


## 九、導入數據庫建表腳本及示例數據

- 開發過程文檔內容介紹
- 作者的其他作品推薦
- 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緩存
- 整合動態菜單與動態路由
- 需求說明
- 實現隱藏菜單功能
- 按權限加載前端路由