目录
文档历史
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-10score: 积分
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 OIerscharacter SET utf8FIELDS TERMINATED BY ',' -- 字段分隔符,每个字段(列)以什么字符分隔,默认是 \tOPTIONALLY 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_schoolcharacter SET utf8FIELDS TERMINATED BY ',' -- 字段分隔符,每个字段(列)以什么字符分隔,默认是 \tOPTIONALLY 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
首页