CentOS 7 下部署Redis、MySQL数据库服务

自从有了二奶机Surface后,感觉每次在多台本本上部署开发环境,太蛋疼。鉴于此,最近特意买个云服务器,在云端部署了Redis、MySQL数据库服务,废话不多说,快进入正题吧……

abstract.png

Centos 7 下部署Redis

安装

  • 添加EPEL仓库
1
yum install epel-release
  • 安装Redis数据库
1
yum install redis

配置

  • 将Redis配置文件模板拷贝一份出来,放置于期望的目录[path]下
1
cp /etc/redis.conf ~/Redis/redis_6379.conf
  • 配置其可被远程客户端访问

由于Redis数据库是部署在服务器上,故,我们需要修改配置文件redis_6379.conf,使其可以被远程客户端访问:

  1. 注释 bind 127.0.0.1一行
  2. 将 protected-mode yes 一行更改为 protected-mode no
  3. 使能后台模式,将 daemonize no 一行更改为 daemonize yes
1
2
3
4
5
# bind 127.0.0.1
...
protected-mode no
...
daemonize yes
  • 自定义端口

Redis数据库默认使用6379端口,如果使用自定义端口,可以修改port 6379一行

1
port [portNum]
  • 设置密码

取消注释 #requirepass foobared 一行,同时将 foobared 更改为 需要设置的密码

1
requirepass [password]
  • 自定义相关路径

按需自定义配置文件中相关文件的路径和文件名

1
2
3
4
5
pidfile /var/run/redis_6379.pid     #  pid 文件名及路径
...
logfile /var/log/redis/redis.log # Redis 日志文件名及路径
...
dir /home/zgh/Redis/dbData # 数据库数据存放的路径

配置开机自启

从Github的redis源码仓库的获取初始化脚本(redis/utils/redis_init_script),以实现使其在Linux系统下开机自启动

  • 配置初始化脚本

将初始化脚本重命名为redis_6379,并做对相关变量值做相应修改,配置如下。然后将其放置在/etc/init.d目录下

1
2
3
4
5
6
7
8
...
REDISPORT=6379
EXEC=/usr/bin/redis-server
CLIEXEC=/usr/bin/redis-cli

PIDFILE=/var/run/redis_6379.pid
CONF=/home/zgh/Redis/redis_6379.conf # 配置redis config文件路径
...
  • 设置脚本的执行权限
1
chmod +x /etc/init.d/redis_6379
  • 添加开启自启动服务
1
chkconfig redis_6379 on
  • 查看当前所有自启的服务列表
1
chkconfig --list

redis服务的2~5对应的均为on,则该服务可以开机自启

figure 1.jpeg

  • 重启服务器

重启服务器后,即可看到我们自定义的 redis 数据库服务已经成功自启

1
2
reboot
ps -ef | grep redis

figure 2.jpeg

如果发现系统下同时有一个redis用户启动的redis服务,可以通过下述命令将默认redis服务停止

1
2
systemctl stop redis.service
systemctl disable redis.service

Centos 7 下部署MySQL

安装

  • 下载MySQL仓库
1
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  • 安装MySQL仓库

使用rpm命令安装RPM软件包,常用选项:

  1. -i: 安装RPM软件包
  2. -v: 显示指令执行过程
  3. -h: 显示安装进度
1
rpm -ivh mysql-community-release-el7-5.noarch.rpm
  • 确认MySQL仓库是否添加
1
yum repolist all | grep mysql | grep  enabled

figure 3.png

  • 安装MySQL数据库
1
yum install mysql-server

配置

  • 打开mysql的配置文件
1
vim /etc/my.cnf
  • 自定义端口

在[mysqld]下自定义端口

1
2
[mysqld]
port=43306
  • 配置字符编码

在[client]、[mysql]、[mysqld]下添加修改下述编码配置

1
2
3
4
5
6
7
8
9
10
11
[client]
default-character-set=utf8
...
[mysql]
default-character-set=utf8
...
[mysqld]
collation-server=utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
...
  • 配置开机自启
1
systemctl enable mysqld
  • 确认字符编码设置

重启mysqld服务,在CentOS中登陆mysql数据库,确认之前的字符编码是否配置正确

1
2
3
systemctl restart mysqld   # 重启mysqld服务
mysql -u [username] -P [port] # 在CentOS服务器中登陆数据库
SHOW VARIABLES LIKE 'character%';

figure 4.jpeg

  • 配置支持远程客户端访问

先查看当前数据库中的账户信息

1
select Host, User, Password from mysql.user where User = 'root';

从mysql.user中root账号的数据,可以看到,Host字段为localhost、127.0.0.1,即该root账号只能从该服务器上登陆

figure 5.jpeg

添加一个支持任何IP都可以登陆的root账户,并对该账号给予所有数据库和数据表(on *.*)的全部操作权限(all privileges)

1
2
grant all privileges on *.* to [username]@[remoteIp] identified by [password] with grant option;
flush privileges; #刷新权限

[username] : 用户名
[remoteIp] : 连接数据库的客户端IP, % 表示允许任何IP的客户端连接
[password] : 密码

figure 6.jpeg

0%