就业冲刺

开启阿里云的端口

  1. 进入服务器安全管理界面

    管理控制台 -> 云服务器 ECS -> 实例 -> 管理 -> 本实例安全组 -> 配置规则
    

  2. 添加规则

安装MySQL

MySQL 分支为两个软件:

  1. Oralce MySQL
  2. MariaDB

简单理解 MariaDB 就是MySQL

yum 安装

  1. 安装

    yum -y install mariadb-server mariadb
    
  2. 启动

    systemctl start mariadb.service
    
  3. 检查

    ps -A|grep mysql
    
  4. 关闭与重启

    systemctl stop mariadb.service
    systemctl restart mariadb.service
    

MySQL 编码设置

  1. 检查

    show variables like 'char%';
    
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    
  2. 修改配置文件, 设置数据库的默认编码

    vim /etc/my.cnf

    文件中添加:

    [mysqld] character-ser-server=utf8

    [mysql] default-character-set=utf8

  3. 重启MySQL(mariadb)

    systemctl restart mariadb.service
    
  4. 检查

    show variables like 'char%';
    
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                      |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                      |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    

部署Web项目到服务器

原理:

1. 迁移数据库

  1. 源服务器上导出现有数据库到SQL

    mysqldump -uroot -p tedu_store > tedu_store.sql
    

    > 符号是"输出重定向", 其目的是将第一个mysqldump命令的结果送到一个文件tedu_store.sql 中.

  2. sftp 将tedu_store.sql 传输到目标数据库服务器

    windows版本的putty软件带来了 psftp, 可向服务器传输数据

  3. 在目标服务器的MySQL控制台执行

    create database tedu_store;
    use tedu_store  
    source tedu_store.sql 
    

2. 部署Java Web 应用到目标Tomcat服务器

  1. 利用开发工具将项目导出war文件
  2. 利用sftp将war文件传输到目标服务器
  3. 在目标服务器上利用cp命令将war文件部署到Tomcat中

    cp TeduStore.war /usr/local/apach-tomcat-7.0.67/webapps
    
  4. 重写启动Tomcat服务器

  5. 如果有错误请查看日志文件

    cat /usr/local/apach-tomcat-7.0.67/logs/catalina.out
    
  6. 测试

    http://生产环境ip:8080/TeduStore/user/showLogin.jsp
    

检查技巧

  1. 检查MySQL, 确认数据库已经成功迁移, 要检查:数据库\表\数据.
  2. 检查Tomcat, 确认db.properties是否正确配置了数据库参数
  3. 检查Tomcat是否成功启动.
  4. 检查Tomcat日志:
  5. 在防火墙上开启 8080 端口

远程访问MySQL

连接原理为:

数据库服务器端

  1. 创建一个用户专门用于远程访问

    //创建用户并且授权的命令
    GRANT ALL ON 数据库名.* TO 用户名@客户端的ip/域名 
    IDENTIFIED BY "密码";
    
    例如:
    GRANT ALL ON tedu_store.* TO tedu@192.168.17.12 
    IDENTIFIED BY "tedu123";
    

    客户端的ip是 192.168.17.12, 用户名是tedu 密码是tedu123

  2. 服务器防火墙开放 3306 端口(如果需要的话)

    firewall-cmd --permanent --add-port=3306/tcp 
    firewall-cmd --reload
    

客户端

  1. 利用mysql 客户端连接到服务器端检查是否能够连接

    mysql -h192.168.17.70 -utedu -ptedu123
    

    MySQL 服务器的IP是192.168.17.70

  2. 更新 Tomcat中的应用程序参数db.properties 连接到远程的数据库:

    url=jdbc:mysql://47.105.48.39:3306/tedu_store?useUnicode=true&characterEncoding=utf8
    driver=com.mysql.jdbc.Driver
    user=tedu
    password=tedu123
    
  3. 测试...

文件权限

Linux 限定用户可以读写那些文件.

查看文件的权限:

ls -l   以长格式显示文件列表, 包含权限信息
ll      CentOS Linux提供的简写命令

文件权限:

利用chmod设置文件的权限:

文件的执行权限

Linux中的可执行文件(命令), 必须满足两个条件才行:

  1. 这个文件本身是可以执行的文件
  2. 这个文件必须有执行权限

满足如上两个条件才能执行.

shell 脚本

shell脚本文件(.sh), 是一种文本文件, 每行都是可以执行命令

shell用于批量执行操作系统命令, 可以实现运维自动化

案例: 自动备份MySQL数据库, 并且传输到远程的服务器

输出重定向

Nginx