一、开发计划(包括准备工作,网站大致需求等)

二、服务器(linux/centos)购买、相应环境配置(jdk),软件安装(mysql, nginx, redis)、域名解析

三、原型图、代码开发(vue.js,  springboot)

二:

  1. 安装mysql(压缩包形式)记录(linux)  另一种快捷安装,参考:https://www.cnblogs.com/wishwzp/p/7113403.html

    a. 下载mysql安装包(链接: https://pan.baidu.com/s/1RZzGfEd_AdSMR8UHrFSUjg 密码: yrw3)

    b. 将压缩包拷贝至/usr/local中(我用的xftp)

    c. 安装依赖: [root@mufeng local]# yum -y install perl perl-devel autoconf libaio

    d. 解压: [root@mufeng local]# tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

     重命名解压后的mysql目录: [root@mufeng local]# mv mysql-5.6.33-linux-glibc2.5-x86_64 mysql

    e. 添加用户组和用户: 

        检查mysql组和用户是否存在,如无创建  

           [root@mufeng local]# cat /etc/group|grep mysql
           mysql:x:1000:
           [root@mufeng local]# cat /etc/passwd|grep mysql
           mysql:x:997:1000::/home/mysql:/bin/bash

         若无则:添加用户组:         [root@mufeng local]# groupadd mysql

             添加用户mysql 到用户组mysql:[root@mufeng local]# useradd -r -g mysql mysql
    f. 赋予权限:

        [root@mufeng local]# chown -R mysql mysql/
        [root@mufeng local]# chgrp -R mysql mysql/

    g. 安装和初始化数据库:[root@mufeng local]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

    h. 设置启动文件:[root@mufeng local]# cp -a ./support-files/my-default.cnf /etc/my.cnf

            [root@mufeng local]# cp -a ./support-files/mysql.server  /etc/init.d/mysqld

    i. 启动mysql:   [root@mufeng mysql]# service mysqld start

            Starting MySQL.                                            [  OK  ]

    j. 设置开机启动:[root@mufeng mysql]# chkconfig --level 35 mysqld on

    k. 建立软连接(可在任何目录下访问):[root@mufeng bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin

    l. 登录mysql并设置密码(首次无需密码):[root@mufeng bin]# mysql -uroot -p

                        Enter password:

                       mysql> set password = password("root");

                       mysql> flush privileges;     //刷新权限

    m. 添加远程连接的账号、并设置权限:mysql> grant all privileges on *.* to 'zhanghao'@'%' identified by "password";

                      mysql> flush privileges;

                      mysql> select user, password, host from mysql.user;  //查看是否添加成功

    n. 本地连接测试:  

            [root@mufeng bin]# mysql -u zhanghao -p
            Enter password:
            ERROR 1045 (28000): Access denied for user 'mufeng'@'localhost' (using password: YES)

      发现连接不上,但账号密码是正确的,原因:数据库安装初始化时,会创建匿名账户,在本地登录时,会默认去匹配匿名账户,所以此时输入密码,连接时,报密码错误,不输入密码,反而可以直接连接

      解决方法:登录root账号,删除匿名账号:mysql> delete from mysql.user where user='';

           更新新账号的密码:     mysql> update mysql.user set password =PASSWORD('password') where user = 'zhanghao'; 

              刷新权限:           mysql> flush privileges;

           再次连接(输入密码):成功

    o. 远程客户端连接,显示无法连接:

              

      检查端口是否开放:tcping ip 3306 结果:ping不通,解决方法:登录服务器后台,添加安全组入网规则,打开3306端口,再次连接,连接成功。

    p. 当更改了配置文件后,需要重启mysql时,有时会遇到这个问题:

        

      解决方法:查看错误文件:[root@mufeng /]# vi /usr/local/mysql/data/mufeng.err

      找到相应的错误记录:我的是,2018-08-06 09:56:16 2573 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'

      然后,编辑配置文件:[root@mufeng /]# vi /etc/my.cnf 

        注释掉,或改正,再次重启即可:

        

    数据表区分大小写操作:在配置文件/etc/my.cnf中添加如下(也可参考:https://www.cnblogs.com/kevingrace/p/6150748.html

                #表名大小写:0为大小写敏感,1为不区分大小写
                lower_case_table_names=1

    修改数据库账号名密码:https://blog.csdn.net/u013510614/article/details/50506676        5.7版本:https://blog.csdn.net/qq_33472557/article/details/77726094

              root账号连接数据库: mysql -u root -p  

                        Enter password:***

              更新密码:     UPDATE mysql.user SET password=PASSWORD("新密码") WHERE user='你的用户名';

                          版本高时,会报错:ERROR 1054 (42S22): Unknown column 'password' in 'field list'

                          原因:版本不同,字段已经更改,使用:

                              update mysql.user set authentication_string=password('新密码') where user='你的用户名'

              刷新权限,否则不会生效:  FLUSH PRIVILEGES;

              退出:        quit

    查看当前用户名密码等信息:  select user, host, authentication_string from mysql.user;

                        

 
  2. 配置jdk:
    a. 下载相应版本的jdk包:https://www.oracle.com(这里是我的jdk1.8:链接: https://pan.baidu.com/s/1TpM4vzXNd9hGHI6Rw-84cw密码: iucs)
    b. 将压缩包放在 /usr/local/java中,解压:[root@mufeng /]# tar -zxvf jdk-8u161-linux-x64.tar.gz
    c. 配置环境变量:vim /etc/profile  
     添加如下:
                 JAVA_HOME=/usr/java/jdk1.8.0_60
          CLASSPATH=$JAVA_HOME/lib/
          PATH=$PATH:$JAVA_HOME/bin
          export PATH JAVA_HOME CLASSPATH
     注意jdk路径,对应自己的路径
     重新加载配置文件:source /etc/profile
    d. 查看安装情况: [root@mufeng /]# javac -version

              javac 1.8.0_161

       配置成功

    

    配置jdk环境变量参考文章:https://www.cnblogs.com/shihaiming/p/5809553.html

 
  3. 安装nginx
    a. 下载相应版本的压缩包:链接: https://pan.baidu.com/s/16yzxJqYv5qDtsHJh_lkEpQ 密码: 47bi
    b. 将压缩包放在 /usr/local/中,解压:[root@mufeng /]# tar -zxvf nginx-1.12.2.tar.gz
    c. 配置安装nginx需要的环境:
      安装 nginx 的编译环境 gcc:[root@mufeng /]# yum install gcc-c++
      nginx的 http模块使用 pcre 解析正则表达式,所以安装 perl 兼容的正则表达式库:
                     [root@mufeng /]# yum install -y pcre pcre-devel
      nginx 使用 zlib 对 http 包的内容进行 gzip:
                   [root@mufeng /]# yum install -y zlib zlib-devel
      nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https ,需要安装 OpenSSL 库:
                      [root@mufeng /]# yum install -y openssl openssl-devel
    d. 配置(使用默认配置):[root@mufeng /]# cd /usr/local/nginx-1.12.2
                [root@mufeng /]# ./configure
      nginx 被安装到 /usr/local/nginx 下
    e. 编译安装:[root@mufeng /]# make && make install
    f. 配置环境变量:[root@mufeng /]# vim /etc/profile
      在文件最后位置添加:    
                 export NGINX_HOME=/usr/local/nginx
          export PATH=$PATH:$NGINX_HOME/sbin

      重新编译 /etc/profile 文件,使其生效:source /etc/profile

    g.启动nginx:nginx -c /usr/local/nginx/conf/nginx.conf
     查看nginx进程:[root@mufeng /]# ps -ef|grep nginx
      成功
   h.设置nginx开机启动:[root@mufeng /]# vi /etc/rc.local

     在文件最后位置添加:/usr/local/nginx/sbin/nginx

    i.nginx其他命令:
       重启:nginx -s reload               
       
关闭:nginx -s stop              
       
查看nginx配置文件的位置:nginx -t
    安装nginx参考文章:https://blog.csdn.net/qq_30038111/article/details/79410354
 
  4. 搭建redis集群
        cd /usr/local/redis_cluster
     a. 集群环境安装:
        安装gcc,g++:         [root@mufeng redis_cluster]# yum install gcc g++
        安装ruby脚本运行环境:    [root@mufeng redis_cluster]# yum install ruby
        安装wget命令:        [root@mufeng redis_cluster]# yum install wget
     b. 安装redis:
        下载redis: [root@mufeng redis_cluster]# wget http://download.redis.io/releases/redis-3.2.4.tar.gz
         解压:        [root@mufeng redis_cluster]# tar -zxvf redis-3.2.4.tar.gz
         编译安装到指定目录: [root@mufeng redis_cluster]# cd redis-3.2.4  
                    [root@mufeng redis_cluster]# make install PREFIX=/usr/local/redis_cluster/redis 
        测试,前端启动模式:  [root@mufeng redis_cluster]# /usr/local/redis_cluster/redis/bin/redis-server
        ctrl+c退出
     c. 编辑配置文件,并启动
        从解压后的redis源码目录中复制redis.conf到redis的安装目录:[root@mufeng redis_cluster]# cp ./redis-3.2.4/redis.conf  /usr/local/redis_cluster/redis/bin
        编辑刚复制到安装目录的配置文件redis.conf:[root@mufeng redis_cluster]# vi ./redis/bin/redis.conf
        把后台运行开启,把原来的NO改成yes:daemonize yes (# 设置yes,redis可以后台运行
        bind 127.0.0.1 改为 bind 0.0.0.0  (# 0.0.0.0 代表外网能访问)
        protected-mode yes 改为 protected-mode no  (# 改为no,可以外界远程访问,redis 3.2 才追加的一个功能)
        (使用技巧:vim打开后,在非insert状态下,输入  /daemonize  回车,便可找到daemonize位置,按n就查找下一个,按下 i键 进入编辑状态,更改后,按下esc键,退出编辑状态,按下shift+; 输入:wq,保存退出)
        使用配置文件,后台启动:[root@mufeng bin]# ./redis-server redis.conf
        打开客户端:[root@mufeng bin]# ./redis-cli
          退出:quit
     d. 集群搭建准备:
        创建6个redis实例:  
            持久化文件删掉:[root@mufeng redis_cluster]# cd redis/bin
                    [root@mufeng bin]# rm -f dump.rdb
            创建多个实例:   [root@mufeng bin]# cd .. //返回上一级目录

                    [root@mufeng redis]#cp -r bin ../redis_cluster/6379

                    [root@mufeng redis]#cp -r bin ../redis_cluster/6380

                    ......

                    [root@mufeng redis]#cp -r bin ../redis_cluster/6384

        编辑各个实例下面的配置文件,修改两处,第一修改端口号(port:6379,6380,...,6384),

                          第二打开cluster-enable前面的注释  (# 开启集群,把注释#去掉)

        复制脚本到redis-cluster目录下:[root@mufeng redis]# cp /usr/local/redis_cluster/redis-3.2.4/src/*.rb  /usr/local/redis_cluster/

        创建redis集群启动的脚本,来便捷的启动6个实例:[root@mufeng redis_cluster]# vim startall.sh

          内容如下:

cd 6379
./redis-server redis.conf
cd ..
cd 6380
./redis-server redis.conf
cd ..
cd 6381
./redis-server redis.conf
cd ..
cd 6382
./redis-server redis.conf
cd ..
cd 6383
./redis-server redis.conf
cd ..
cd 6384
./redis-server redis.conf
cd ..

        保存并退出  wq!;编辑脚本权限:[root@mufeng redis_cluster]#  chmod +x startall.sh

        利用脚本启动redis集群:[root@mufeng redis_cluster]#  ./startall.sh

        查看各个实例的运行状态:ps aux|grep redis

      e. 集群正式搭建:

        安装redis:[root@mufeng redis_cluster]#  gem install redis

          可能:-bash: gem: command not found   则:安装redis集群工具和环境

               则 [root@iZbp15h7x6vujtklreqtreZ redis_cluster]# yum install ruby && yum install -y rubygems

          可能:ERROR:  Could not find a valid gem 'redis' (>= 0) in any repository     可参考:https://blog.csdn.net/snowhite91/article/details/78962436

             则 [root@iZbp15h7x6vujtklreqtreZ redis_cluster]# wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem

           有一次安装时,还出现了:While executing gem ... (Zlib::BufError)     buffer error 错误

              没有找到原因,但最后 把redis_cluster目录下的 所有rm -rf redis-3.2.1.gem文件删除后,此错误消失了

          此时可能会报错(我遇到了):Redisredis requires Ruby version >= 2.2.2

          解决方法参考:https://blog.csdn.net/FengYe_YuLu/article/details/77628094    https://blog.csdn.net/zhaoyahui_666/article/details/78716511

        开放端口:6379-6384,集群总线端口16379-16384

        创建集群(下边的ip地址改为自己的公网ip,不要写127.0.0.1,否则外部无法访问):

             [root@mufeng redis_cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

       运行上面命令后会出现,询问:输入 yes,即可

        --replicas 1表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

      f. 集群设置密码,实现外部安全访问

          首先上一步的IP必须是公网的ip

          更改各个实例的配置文件redis.conf,分别添加:requirepass  yourpassword

             6个实例添加的要相同
           删除掉每个实例中的nodes.conf文件,
           查看所有redis进程:[root@mufeng redis_cluster]# ps aux|grep redis
           kill掉这6个进程:kill -9 pid
           然后重新启动6个redis实例:[root@mufeng redis_cluster]# ./startall.sh
           测试:不输入密码时,会提醒需要密码,
              

              输入密码,再次测试,成功;

              

      其他问题:有时需要重新搭建时,遇到此问题:[ERR] Node 39.108.145.103:6381 is not empty. Either the node already knows other nodes (check with C

           解决方法:删除掉节点下 aof、rdb结尾的文件,重新执行e中的创建集群命令即可

      g. 连接测试  [root@mufeng 6379]# ./redis-cli -c -h 127.0.0.1 -p 6379 -a Passw0rd

        只有加入 “-c” 才会启动集群模式,不然会报错:(error) MOVED 5798 39.108.145.103:6380

        

      安装也可参考:https://www.cnblogs.com/007sx/p/7158977.html

  5. 由于服务器配置太低,现将redis集群改为reids单机版,以减少内存

    具体参考:https://blog.csdn.net/makang456/article/details/54947193

              
  6. 遇到的问题:
          数据表区分大小写:https://blog.csdn.net/wangshuai6707/article/details/52168467
            登录mysql时-bash: mysql: command not found:https://blog.csdn.net/TROY_Musou/article/details/80336059
         搭建redis集群时:e中遇到的问题:https://blog.csdn.net/zhaoyahui_666/article/details/78716511
                 f中遇到的问题:https://blog.csdn.net/vtopqx/article/details/50235737   

个人网站搭建时linux中的相关配置记录(mysql,jdk,nginx,redis)的更多相关文章

  1. linux中 systemd相关配置

    systemd相关配置 推荐使用systemd管理进程,相比使用supervisord systemd提供系统级别的支援. 一.系统管理 Systemd 并不是一个命令,而是一组命令,涉及到系统管理的 ...

  2. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  3. Linux中VSFTP的配置

    配置VSFTP服务器: 1.安装VSFTP,可以参考Linux 中yum的配置来安装: yum installvsftpd.x86_64 -y 2.修改SELinux: setenforce 0 查看 ...

  4. 在Linux中安装和配置OpenVPN Server的最简便方法!

    本文介绍了如何在基于RPM和DEB的系统中安装和配置OpenVPN服务器.我们在本文中将使用一个名为openvpn-install的脚本,它使整个OpenVPN服务器的安装和配置过程实现了自动化.该脚 ...

  5. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  6. electron-builder中NSIS相关配置

    electron-builder中NSIS相关配置 相比较于electron-packager打包,使用electron-builder打包使得包体积更小.在electron-builder中,对于N ...

  7. 在linux中使用Sqlplus命令登录MySQL,查看表并设置行数和宽度,使其正常显示

    在linux中使用sqlplus命令进入MySQL,设置行数和行宽   1) 查看目前的pagesize,默认是14: 1.      show pagesize;    2.      set pa ...

  8. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  9. Vue-cli 多页相关配置记录

    Vue-cli 多页相关配置记录 搭建一个顺手的MPA项目脚手架,其实根据项目的不同目录结构和打包配置都可以进行灵活的调整.这次的项目可能是包含各种客户端和管理后台在一起的综合项目所以需要将样式和脚本 ...

随机推荐

  1. 2018.10.24 NOIP模拟 小 C 的宿舍(分治)

    传送门 分治妙题. 没有这道题的暴力分今天又垫底了啊233 由于用了分治的方法,我们只用考虑左区间对右区间的贡献以及右区间对左区间的贡献. 可以发现如果从中点开始向两边递推最小值并用这个区间最小值来推 ...

  2. 委托构造函数(c++11)

    1.概念 1)委托构造函数也是构造函数,它也有形参列表,它将实参传递给其他的构造函数来初始化类对象,像是把自己的一些(或者全部)构造职责委托给其他构造函数一样

  3. VSCode的终端修改

    快速打开VSCode的快捷键是:Ctrl + `(反引号) 转自:https://blog.csdn.net/u013517122/article/details/82776607 因本人实在忍受不了 ...

  4. Codeforces Round#413 Div.2

    A. Carrot Cakes 题面 In some game by Playrix it takes t minutes for an oven to bake k carrot cakes, al ...

  5. 20155205 2016-2017-2 《Java程序设计》第1周学习总结

    20155205 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 第一章 下载了娄老师推介的xmind,试着自己总结了一下. 为了要运行Java程序,必须安装 ...

  6. ueditor+word粘贴上传

    公司做的项目要用到文本上传功能. 网上找了很久,大部分都有一些不成熟的问题,终于让我找到了一个成熟的项目. 下面就来看看: 1.打开工程: 对于文档的上传我们需要知道这个项目是否符合我们的初衷. 运行 ...

  7. SSM_CRUD新手练习(3)创建数据库

    在上一节我们已经完成了基本的SSM配置,现在需要创建我们数据库. 我们需要两张表分别为tbl_emp(员工表)和tbl_dedpt(部门表).同时d_id是部门表对应dept_id的外键. 需要注意的 ...

  8. Hdu1151 Air Raid(最小覆盖路径)

    Air Raid Problem Description Consider a town where all the streets are one-way and each street leads ...

  9. HashMap原理、源码、实践

    HashMap是一种十分常用的数据结构,作为一个应用开发人员,对其原理.实现的加深理解有助于更高效地进行数据存取.本文所用的jdk版本为1.5. 使用HashMap <Effective JAV ...

  10. JMS学习以及jms的实现activeMq

    1.JMS规范介绍: http://www.cnblogs.com/hapjin/p/5431706.html http://elim.iteye.com/blog/1893038 http://bl ...