![](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)