自从有了二奶机Surface后,感觉每次在多台本本上部署开发环境,太蛋疼。鉴于此,最近特意买个云服务器,在云端部署了Redis、MySQL数据库服务,废话不多说,快进入正题吧……
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,使其可以被远程客户端访问:
- 注释 bind 127.0.0.1一行
- 将 protected-mode yes 一行更改为 protected-mode no
- 使能后台模式,将 daemonize no 一行更改为 daemonize yes
1 | # bind 127.0.0.1 |
- 自定义端口
Redis数据库默认使用6379端口,如果使用自定义端口,可以修改port 6379一行
1 | port [portNum] |
- 设置密码
取消注释 #requirepass foobared 一行,同时将 foobared 更改为 需要设置的密码
1 | requirepass [password] |
- 自定义相关路径
按需自定义配置文件中相关文件的路径和文件名
1 | pidfile /var/run/redis_6379.pid # pid 文件名及路径 |
配置开机自启
从Github的redis源码仓库的获取初始化脚本(redis/utils/redis_init_script),以实现使其在Linux系统下开机自启动
- 配置初始化脚本
将初始化脚本重命名为redis_6379,并做对相关变量值做相应修改,配置如下。然后将其放置在/etc/init.d目录下
1 | ... |
- 设置脚本的执行权限
1 | chmod +x /etc/init.d/redis_6379 |
- 添加开启自启动服务
1 | chkconfig redis_6379 on |
- 查看当前所有自启的服务列表
1 | chkconfig --list |
redis服务的2~5对应的均为on,则该服务可以开机自启
- 重启服务器
重启服务器后,即可看到我们自定义的 redis 数据库服务已经成功自启
1 | reboot |
如果发现系统下同时有一个redis用户启动的redis服务,可以通过下述命令将默认redis服务停止
1 | systemctl stop redis.service |
Centos 7 下部署MySQL
安装
- 下载MySQL仓库
1 | wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm |
- 安装MySQL仓库
使用rpm命令安装RPM软件包,常用选项:
- -i: 安装RPM软件包
- -v: 显示指令执行过程
- -h: 显示安装进度
1 | rpm -ivh mysql-community-release-el7-5.noarch.rpm |
- 确认MySQL仓库是否添加
1 | yum repolist all | grep mysql | grep enabled |
- 安装MySQL数据库
1 | yum install mysql-server |
配置
- 打开mysql的配置文件
1 | vim /etc/my.cnf |
- 自定义端口
在[mysqld]下自定义端口
1 | [mysqld] |
- 配置字符编码
在[client]、[mysql]、[mysqld]下添加修改下述编码配置
1 | [client] |
- 配置开机自启
1 | systemctl enable mysqld |
- 确认字符编码设置
重启mysqld服务,在CentOS中登陆mysql数据库,确认之前的字符编码是否配置正确
1 | systemctl restart mysqld # 重启mysqld服务 |
- 配置支持远程客户端访问
先查看当前数据库中的账户信息
1 | select Host, User, Password from mysql.user where User = 'root'; |
从mysql.user中root账号的数据,可以看到,Host字段为localhost、127.0.0.1,即该root账号只能从该服务器上登陆
添加一个支持任何IP都可以登陆的root账户,并对该账号给予所有数据库和数据表(on *.*)的全部操作权限(all privileges)
1 | grant all privileges on *.* to [username]@[remoteIp] identified by [password] with grant option; |
[username] : 用户名
[remoteIp] : 连接数据库的客户端IP, % 表示允许任何IP的客户端连接
[password] : 密码