前言

之前购买阿里云活动时其实是配送了MySQL云数据库的实例的,不过既然老师讲解详细的配置,那就跟着一起做一遍,后续再把数据库移到云数据库中也可以(那样又可以写一篇博客了O(∩_∩)O)。之前自己一直是在本地数据库使用root账号,现在也搞个实际环境玩玩~学习一下真实环境中的最佳实践方式。

安装

#默认安装阿里云源中的版本
yum -y install mysql-server
#通过以下命令查看是否安装
rpm -qa | grep mysql-server
#版本为mysql-server-5.1.73-8.el6_8.x86_64

配置

#默认配置文件在/etc/my.cnf
vim /etc/my.cnf
#字符集配置,在[mysqld]节点下添加
default-character-set=utf8 //5.1版本使用,后面启动时提示这个已经过时了,可以不用
character-set-server=utf8 //5.5版本使用,阿里云RDS就是用这个
#保存退出

自启动配置

#执行
chkconfig mysqld on
#查看设置效果
chkconfig --list mysqld
#如果2-5位为on就可以了,如下图

mysql m2 mysql m22_MySQL

防火墙配置

这里我暂时不是很明白为什么在同一台机子上还要配备防火墙···待我学到后面再说吧

vim /etc/sysconfig/iptables
#添加以下信息
#mysql
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
#保存退出
#重启防火墙
service iptables restart

启动MySQL服务

#启动服务
service mysqld start

这里出了点小插曲,自己搞了不少时间,最后通过这个帖子的方法解决的

MySQL初始化环境设置

#先以root身份直接登录
mysql -u root
#查看目前mysql用户,其实也是以mysql数据库的形式存储的
SELECT user,host,password FROM mysql.user;
#以下是我的情况
+------+-----------+----------+
| user | host      | password |
+------+-----------+----------+
| root | localhost |          |
| root | ecs1      |          |
| root | 127.0.0.1 |          |
|      | localhost |          |
|      | ecs1      |          |
+------+-----------+----------+
#修改root密码,这里我设的密码就随意了,真实环境不能这样咯,“=”后的password是一个内置函数
set password for root@localhost=password('123456');
set password for root@127.0.0.1=password('123456');
#exit退出后,mysql -u root -p再次登录就需要密码了

删除匿名用户

这个以前自己用的时候从来不会去设置的,可能这也是实际环境的严谨

#进去mysql,查看是否有匿名用户
SELECT user,host FROM mysql.user;
#删除匿名用户
DELETE FROM mysql.user WHERE user='';
#再次查看
SELECT user,host FROM mysql.user;
#刷新,使以上生效
flush privileges;

插入MySQL新用户

#也算是体现分权限管理吧
INSERT INTO mysql.user(user,host,password)
values("happymall","localhost",password("123456"));

创建数据库

这里就先为后面的网址创建一个数据库吧

#小心happymall两边的符号为键盘上数字1边上的点号
CREATE DATABASE `happymall` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

本地用户赋予所有权限

#这里all privileges表示所有权限,happymall.*表示这个数据库下所有表的权限
#happymall@localhost表示happymall用户在本地登录,最后是密码
grant all privileges on happymall.* to happymall@localhost identified by '123456';

给账号开通外网所有权限

grant all privileges on happymall.* to happymall@'%' identified by '123456';
#'%'表示所有ip,为了安全也可以自行设置某些ip,权限也可以设置得很细,这里就简单处理了
#是操作生效
flush privileges;

连接数据库验证

这里为了我在自己计算机上使用Navicat管理数据库方便,在阿里云上开通了3306的端口,然后连接使用

mysql m2 mysql m22_mysql_02


MySQL的部分就暂时到这里咯~