最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

OIerDb在WAMP环境中部署记录

XAMPP教程 admin 806浏览 0评论

目录

  • 文档历史
  • OIerDb作者(nocrizwang)的在线部署
  • 安装WAMP
    • 操作记录
    • 修改Mysql登录密码
    • WAMP info
    • 配置MySQL server 登录信息
  • 复制web服务器需要的文件到WAMP的WWW文件夹中
  • result.csv 导入到数据库的OIers表中
    • result.csv 字段名
    • 从 new_merger.py 中可以找到字段定义,如下所示:
    • 使用到的网站后台文件:on_server/search.php
    • 将result.csv导入到MySQL数据库的表OIers
  • 将school_data.csv导入到MySQL数据库OI_school表中
    • 后台使用文件:on_server/school.php
    • 后台使用文件:on_server/rank.php
    • 将school_data.csv导入到MySQL数据库OI_school表中
  • 更改PHP文件中的MySQL登录信息(数据库,用户名,密码,服务器地址)
  • FAQ(遇到过的问题)
    • 解决方法:
    • MySQL root密码忘记

OIerDb在WAMP环境中部署记录

文档历史

日期 作者 版本 简要说明
2020.12.12 SamXIAO v1.0 初始版本

OIerDb作者(nocrizwang)的在线部署

点此跳转到OIerDb作者的在线网站 : https://bytew.net/OIer/
作者开源于:github 上

安装WAMP

WAMP info

  WampServer Version 3.1.9 64bit
  Created by Romain Bourdon (2005)
  Maintainer / Upgrade to 2.5 by Herve Leclerc
  Upgrade to 3 by Otomatic (wampserver@otomatic.net)
  Multi styles for homepage by Jojaba
  Installer by Inno Setup: http://www.jrsoftware.org/isinfo.php
  Forum Wampserver: http://forum.wampserver.com/index.php
  ______________________ Versions used ______________________
  Apache 2.4.39 Port 80- PHP 7.2.18
  MySQL 5.7.26 Port 3308
  MariaDB 10.3.14 Port 3307
  PHP 5.6.40 for CLI (Command-Line Interface)

配置MySQL server 登录信息

MySQL 5.7 相比Mysql 5.6有较大变化
在MySQL 5.7 password字段已从mysql.user表中删除,新的字段名是“authenticalion_string”. 有以下3步:

  • 选择数据库:use mysql;
  • 更新root的密码:update user set authentication_string=password(‘新密码’) where user=’root’ and Host=’localhost’;
  • 刷新权限:flush privileges;

操作记录

 

修改Mysql登录密码

P:\wamp64-3.1.9-201212\bin\mysql\mysql5.7.26\bin>mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
Database changed

mysql> update user set authentication_string=password('sx123456') where user='root' and Host='localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql>

复制web服务器需要的文件到WAMP的WWW文件夹中

  • OIerDb\OIer-master\on_server\文件夹中的所有文件复制到 P:\wamp64-3.1.9-201212\www\OIerDb\ 文件夹中
  • 浏览器中输入 http://127.0.0.1/OIerDb/ 可以显示首页了。

result.csv 导入到数据库的OIers表中

result.csv 字段名

共有11列,第3-4列为空
最后一列是学生小学六年级上学期年份(也是NOIP举行时的年份),应该是以此来计算现在的年级(初[高]一、二、三)

从 new_merger.py 中可以找到字段定义,如下所示:

def output():
    result = open("result.csv","w",encoding='utf-8')
    result.write("id,name,re1,re2,pinyin,level,score,awards,sex,smth,year\n")
    id = 0
  • id:顺序编号
  • name: 姓名
  • re1: 保留
  • re2: 保留
  • pinyin: 姓名拼音首字母缩写
  • level: 评级
    3-10
  • score: 积分
  • awards: 所有获奖记录. JSON格式
  • sex: 性别。
    • 1:男;
    • -1:女;
    • 0:未知
  • smth: 综合评分(实力评分)
  • year:小学六年级入学年份。
    这样便于计算现在的年级(初[高]一、二、三)或毕业

使用到的网站后台文件:on_server/search.php

从此文件中可获知:

  • 数据库信息,需要配置
    $conn = mysqli_connect('localhost', 'THE_USERNAME', 'THE_PASSWORD',"THE_DATABASE");
  • 表名:OIers
    $result = mysqli_query($conn,"SELECT * FROM OIers Where name = '$cui'");
    $result = mysqli_query($conn,"SELECT * FROM OIers Where pinyin = '$curi'");
    ...

将result.csv导入到MySQL数据库的表OIers

使用下面的SQL脚本

CREATE DATABASE IF NOT EXISTS oier DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
USE oier;
DROP TABLE OIers;
CREATE TABLE IF NOT EXISTS `OIers`(
   `id` INT,
   `name` NVARCHAR(100),
   `re1` NVARCHAR(100),
   `re2` NVARCHAR(100),
   `pinyin` VARCHAR(20),
   `level` INT,
   `score` FLOAT,
   `awards` NVARCHAR(5000),
   `sex` INT,
   `smth` FLOAT,
   `year` INT
   --#PRIMARY KEY (`id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
USE oier;

load data local infile 'E:/NOIP-CSPJS-ACM-ICPC-CCSP/OIerDb/OIer-master/model/result.csv'
INTO TABLE OIers
character SET utf8
FIELDS TERMINATED BY ',' -- 字段分隔符,每个字段(列)以什么字符分隔,默认是 \t
OPTIONALLY ENCLOSED BY '"' -- 文本限定符,每个字段被什么字符包围,默认是空字符
ESCAPED BY '\\' -- 转义符,默认是 \
LINES TERMINATED BY '\n' -- 记录分隔符,如字段本身也含\n,那么应先去除,否则load data 会误将其视作另一行记录进行导入
;

-- TRUNCATE table oier.OIers;

将school_data.csv导入到MySQL数据库OI_school表中

后台使用文件:on_server/school.php

  • school.php:
    $result = mysqli_query($conn,"SELECT * FROM OI_school Where id = '$q'");
  • school_analyzer.py:
    f = open("school_data.csv","w")
    f.write("id,name,awards,rating,division,province,city,rank\n")

有2个文件:OI_school.csv和school_data.csv, 只需导入后一个到数据库?

后台使用文件:on_server/rank.php

  • rank.php:
    $qr = "FROM OI_school WHERE 1=1 ";

将school_data.csv导入到MySQL数据库OI_school表中

使用如下脚本:

USE oier;
DROP TABLE OI_school;
CREATE TABLE IF NOT EXISTS `OI_school`(
   `id` INT,
   `name` NVARCHAR(4000),
   `awards` NVARCHAR(8000),
   `rating` INT,
   `division` NVARCHAR(30),
   `province` NVARCHAR(50),
   `city` NVARCHAR(50),
   `rank` INT
   -- #PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

load data local infile 'E:/NOIP-CSPJS-ACM-ICPC-CCSP/OIerDb/OIer-master/model/school_data.csv'
INTO TABLE OI_school
character SET utf8
FIELDS TERMINATED BY ',' -- 字段分隔符,每个字段(列)以什么字符分隔,默认是 \t
OPTIONALLY ENCLOSED BY '"' -- 文本限定符,每个字段被什么字符包围,默认是空字符
ESCAPED BY '\\' -- 转义符,默认是 \
LINES TERMINATED BY '\n' -- 记录分隔符,如字段本身也含\n,那么应先去除,否则load data 会误将其视作另一行记录进行导入
;

更改PHP文件中的MySQL登录信息(数据库,用户名,密码,服务器地址)

有3个文件:school.php, search.php, rank.php 作如下更改:

$conn = mysqli_connect('localhost', 'THE_USERNAME', 'THE_PASSWORD',"THE_DATABASE");

#改为:

$conn = mysqli_connect('localhost:3308', 'root', 'sx123456',"oier");

FAQ(遇到过的问题)

MySQL root密码忘记

update user set authentication_string=password('sx123456') where user='root' and Host='localhost';

错误地写为

update user set authentication_string=password('sx123456') where user='root' and Host='localhsot';

导致不能登录MySQL

解决方法:

  1. 修改 P:\wamp64-3.1.9-201212\bin\mysql\mysql5.7.26\my.ini
[wampmysqld64]
;skip-grant-tables

改为:

[wampmysqld64]
skip-grant-tables
  1. 重启WAMP
  2. 修改Mysql登录密码, 参见
  3. 将INI改回
  4. 重启WAMP

首页

f000000000032

转载请注明:XAMPP中文组官网 » OIerDb在WAMP环境中部署记录

您必须 登录 才能发表评论!