效率提升-准备工作-云存储

63 阅读3分钟

云存储

  云存储分两个方面,一个是结构化数据存储,也就是关系型数据库,另外一个就是非结构化数据的存储。

关系型数据库

  当时关系型数据库首选就是mysql,免费还方便,所以我就自己在云服务上装了mysql(云Mysql比服务器贵好多),安装的过程就不做赘述,也比较简单。

mysql安装

  自己总结的快速安装mysql的脚本(基于CentOS),不复杂,如果目录什么按照文档来的话,基本上无脑一步步复制执行下去就行。

安装包下载地址(选择MySQL Compressed TAR Archive版本): downloads.mysql.com/archives/co…

  1. 删除原生的一些mariadb内容,安装CentOS7的时候如果勾选了附加的服务,就会自动安装上去。

    rpm -qa|grep mariadb    #查询出已安装的mariadb
    rpm -e --nodeps 文件名  #卸载 , 文件名为使用rpm -qa|grep mariadb 命令查出的所有文件
    
  2. 删除my.cnf

    rm /etc/my.cnf //删除,后面重新建
    
  3. 创建mysql用户组,按照自己需要调整

    groupadd mysql
    useradd -g mysql mysql
    
  4. 解压mysql

    tar zxvf xxx.tar.gz
    
  5. 新建 my.cnf,配置信息都在这

    vim /etc/my.cnf
    

    并在该文件内添加以下代码, 里面的安装路径注意和下面一步对应起来,要赋权限的。

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    [mysqld]
    skip-name-resolve
    #设置3306端口
    port=3306
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    
  6. 给文件夹赋权限,并设置用户为mysql

    mkdir /var/lib/mysql
    mkdir /var/lib/mysql/mysql
    chown -R mysql:mysql /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql/mysql
    
  7. 安装mysql

    cd /usr/local/mysql
    chown -R mysql:mysql ./     #修改当前目录拥有者为mysql用户
    ./scripts/mysql_install_db --user=mysql         #安装数据库
    chown -R mysql:mysql data    #修改当前data目录拥有者为mysql用户
    
  8. 配置文件权限处理

    chown 777 /etc/my.cnf
    
  9. mysql系统自启

    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    chmod +x /etc/rc.d/init.d/mysqld
    
    chkconfig --add mysqld
    chkconfig --list mysqld
    #命令输出类似下面的结果:
    #mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    #表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止。
    service mysqld start //启动mysql
    
  10. mysql加入环境变量

vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
. /etc/profile
  1. mysql相关账户和密码设置   刚安装好时,root账户密码是空的,需要改动。如果有需要,还可以增加远程访问账户。

    mysql -u root -p
    use mysql
    # 修改root用户密码
    update user set password=password('you password') where user='root'and host='localhost';
    # 注意下面的your username 和 your password改成你需要设置的用户和密码, 权限这块根据需要自己设置
    GRANT ALL PRIVILEGES ON *.* TO'your username'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
    #刷新权限
    FLUSH PRIVILEGES ;
    

  为了保证数据的安全,也自己做了数据库的备份,每天定时备份一次,然后定期从服务器上拷贝到本地。(云mysql提供这些功能,如果预算允许,还是建议直接用云mysql)。

export db_pwd="xxxxx"
bak_dir="/root/mysql_bak"
db_name_array=("db1" "db2" "db3" "db4" "db5" "db6")
time="$(date +"%Y%m%d_%H%M%S")"
for name in ${db_name_array[@]}
do
   echo "$name导出中......"
   mysqldump -u$db_user -h127.0.0.1 -P3306 $name > $bak_dir/${name}_$time.sql   
   find $bak_dir -name "$name*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
done

脚本也比较简单,循环备份多个库,然后最多保留7天

看你业务量了,我大部分场景都是个人使用,没什么并发量,所以数据库放在服务器上,占用的资源也很少。

非结构化数据

  我们一般说的非结构化数据,可能指图片,视频这类的。因为我对图片管理也做了很多工具,包括图片转换、图床管理等等,所以对非结构化的数据存储需求还是比较强烈的。

  云平台上现在提供的OSS存储服务就是很好的选择(我原本也想自己做,但是发现代价有点大,文件增删改查,各类状态管理,安全保护,上传下载等等)。并且OSS存储价格还是比较便宜的,所以也是直接选择了OSS存储(华为云教OBS)。

价钱便宜,管理方便,二次开发SDK也很丰富

这个不做赘述,官方有很详细的文档