Debian 安装 Redis、MySql

项目中需要用到的数据库安装、配置以及常见错误

Redis

Redis 是一个高性能的key-value数据库。 在部分场合可以对关系数据库起到很好的补充作用。是当前比较热门的NOSQL系统之一。它提供了C#,Java,PHP,JavaScript,Python,Ruby等客户端,使用很方便。

下载并解压

1
2
3
4
5
6
# 跳转至目录
cd /usr/local/src
# 下载
wget http://download.redis.io/releases/redis-stable.tar.gz
# 解压
tar xzf redis-stable.tar.gz

编译

Redis基于C开发,因此确保电脑安装有gcc和make。

  1. 安装make命令 sudo apt-get install make
  2. 安装sysv-rc-conf命令 sudo apt-get install sysv-rc-conf
  3. 安装GCC: sudo apt-get install gcc

完成之后,编译步骤如下:

1
2
3
4
5
cd redis-stable
make test # 可忽略,测试主机性能
make
sudo make install
sudo ./install_server.sh

安装

接下来会出来redis配置,按照提示一步步设置端口,日志路径,配置文件等。
系统服务位于/etc/init.d/redis_6379,可以更名为/etc/inti.d/reids-server.

1
2
3
4
5
sudo mv /etc/init.d/redis{_6379,-server}
# 启动:
sudo redis-server
#关闭命令-建议使用客户端停止
redis-cli shutdown

测试和连接

使用redis客户端测试服务器

1
2
redis-cli ping
PONG

修改Redis配置

设置访问账号

默认情况下,访问Redis服务器是不需要密码的,为了增加安全性我们需要设置Redis服务器的访问密码。设置访问密码为password。

用vi打开Redis服务器的配置文件redis.conf

1
2
3
sudo vi /etc/redis/redis.conf
#取消注释requirepass
requirepass password

设置Redis可被远程访问

默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。用vi打开Redis服务器的配置文件redis.conf

1
2
3
sudo vi /etc/redis/redis.conf
#注释bind
#bind 127.0.0.1

修改后,重启Redis服务器

1
2
redis-cli shutdown
sudo redis-server

登陆

本机登陆Redis服务器,输入密码

redis-cli -a password

远程访问,主机为x.x.x.x

redis-cli -a password -h x.x.x.x

MySql

MySql是目前最受欢迎的关系型数据库之一。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,很多中小型网站的开发都选择将 MySql作为网站数据库。

配置源

debian下安装软件的指令为apt-get,在使用apt-get安装之前,需要先下载官网提供的Deb包,以将MySql的仓库添加到apt-get的源中。

  1. 获取下载链接

    打开网站MySQL APT Respository

  2. 点击Download,跳转到下载页面

  3. 右键点击No thanks,just start my download复制链接

  4. 进入工作目录

    1
    cd ~
  5. 下载Deb文件

    1
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
  6. 将该文件添加至apt-get的源

    1
    sudo dpkg -i ./mysql-apt-config_0.8.12-1_all.deb
  7. 然后会弹出MySql的源配置界面

    我们仅需选择版本,下面两个选项默认即可

  8. 更新源

    1
    sudo apt-get update

安装

1
sudo apt-get install mysql-server

这一步可能会提示错误:

可以换个命令

1
sudo aptitude install <mysql-server>

因为aptitude会自动把所有依赖的库都帮你顺着找到,并下载好。

apt-get下载某个包中它的所有依赖项都必须存在。

这就是为什么我们每次执行apt-get的时候都需要先apt-get update的更新软件包的原因。

如果提示找不到aptitude,可以先使用sudo apt-get install aptitude进行下载

然后就是漫长的等待,因为安装包200多M…..

中途会让你输入root密码,自己输入一个记住就行了。

基本操作

  1. 开启MySql服务

    1
    sudo service mysql start
  2. 关闭服务

    1
    sudo service mysql stop
  3. 重启服务

    1
    sudo service mysql restart
  4. 登陆

    1
    mysql -u root -p

    输入密码即可登陆

  5. 指定端口号登录

    1
    mysql -u root -p -P 3306

    注意指定端口的字母P为大写,而标识密码的p为小写。MySql默认端口号为3306

  6. 指定IP地址和端口号登录MySQL数据库

    1
    mysql -h 127.0.0.1 -u root -p -P 3306

配置

因为MySql刚安装完成不允许从远程访问而且只有一个root用户,这对于开发不太友好也比较不安全。

所以我们应该创建一个用于开发的数据库账户,并且为它设置远程访问权限。

当然,在真正投入生成环境之后,我们应该移除远程访问的权限

  1. 登录MySql

    1
    mysql -u root -p
  2. 输入密码登录之后,新建一个用户

    1
    mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
  3. 完成之后为该用户分配所有权限

    1
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
  4. 接着刷新权限即可使用新用户在任意host登录数据库

    1
    mysql> FLUSH PRIVILEGES;
  5. 如果还是不行的话,打开下面的文件

    1
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  6. 把bind-adress那一行的127.0.0.1改成0.0.0.0

    重要提示:投入生产时记得改回来

    1
    2
    3
    # By default we only accept connections from localhost
    # bind-address = 127.0.0.1 #先注释此行
    bind-address = 0.0.0.0