目录
- 文档历史
- 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
解决方法:
- 修改 P:\wamp64-3.1.9-201212\bin\mysql\mysql5.7.26\my.ini
[wampmysqld64] ;skip-grant-tables
改为:
[wampmysqld64] skip-grant-tables
- 重启WAMP
- 修改Mysql登录密码, 参见
- 将INI改回
- 重启WAMP
首页
转载请注明:XAMPP中文组官网 » OIerDb在WAMP环境中部署记录