Tomcat, MySQL和Python(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Tomcat, MySQL和Python(2)

一、采用Windows MySQL


1.下载MYSQL安装包

可以去官网下载ZIPhttp://www.mysql.com/downloads/mysql/

我安装的是mysql-5.5.23-winx64


2.解压到本地目录

D:\mysql


3.添加系统环境变量

添加系统环境变量是为了在命令控制窗口里更方便点。

新建:MYSQL_HOME ==> D:\mysql

追加:PATH==>;%MYSQL_HOME%\bin


4. 修改MySQL5.5的配置文件,把my-small.ini改名为my.ini进行编辑

a)在[mysqld]下追加

-------
basedir = "d:\\mysql"
datadir = "d:\\mysql\\data"
character-set-server = gb2312
-------

b) [client]下追加

-------
default-character-set = gb2312
-------


5.启动服务

保存my.ini的配置,然后打开命令行(开始菜单==>运行==>cmd

输入: mysqld --console 然后回车将看到如下类似内容:

-------
C:\Windows\system32>mysqld --console
120410 14:25:22 [Note] Plugin 'FEDERATED' is disabled.
120410 14:25:22 InnoDB: The InnoDB memory heap is disabled
120410 14:25:22 InnoDB: Mutexes and rw_locks use Windows interlocked functions
120410 14:25:22 InnoDB: Compressed tables use zlib 1.2.3
120410 14:25:22 InnoDB: Initializing buffer pool, size = 128.0M
120410 14:25:22 InnoDB: Completed initialization of buffer pool
120410 14:25:22 InnoDB: highest supported file format is Barracuda.
120410 14:25:22 InnoDB: Waiting for the background threads to start
120410 14:25:23 InnoDB: 1.1.8 started; log sequence number 1595675
120410 14:25:23 [Note] Event Scheduler: Loaded 0 events
120410 14:25:23 [Note] mysqld: ready for connections.
Version: '5.5.22' socket: '' port: 3306 MySQL Community Server (GPL)
-------

==> 证明mysql服务已启动


6. 设置登陆mysql root帐号的的密码

打开新的命令行,输入 mysql -uroot 回车

-------
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, 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. www.2cto.com 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-------


==〉看到上面类似内容说明登陆成功,此时的root帐号是没有密码的

执行命令修改密码:

 

use mysql; 
update user set password=PASSWORD("这里填写你要设置的密码") where user='root';

 

执行完成后退出mysql操作,然后关闭mysql服务(ctrl+C 关闭另一个命令窗口),然后重启mysql服务

 

然后使用你的root帐号登录 

mysqladmin -u root password 你的密码

网上是这么写的,但我这样出现了下面的错误

Error: Access denied for user 'root'@'localhost' (using password: YES)

原因是ROOT 的密码没设,或者有错误,网上搜了许多的方法都不行,最后这个成功了,不过必须是主机上执行。

直接运行命令行窗口输入下面的

 

mysqladmin -u root password 你的密码

这样就行了,然后再使用 mysqladmin -u root password 你的密码就可以正常登录了。

 

7.安装WINDOWS服务

命令行窗口 CD 进入D:\MySql\bin

执行mysqld.exe --install MySQL5.5 --defaults-file="D:\MySql\my.ini"

net start mysql5.5

到服务器里把 MYSQL5.5改成自动,这样每次开机MYSQL服务就会自动启动了

 

二,安装XAMPP(我采用的是这种方式)


下载安装以后通过控制面板启动MySQL,在C:\xampp\mysqlXAMPP我是安装在C:\xampp下的)建立文件my.ini,内容如下:

[mysqld]
basedir =   "C:\xampp\mysql"
datadir =   "C:\xampp\mysql\data"
character-set-server =   gb2312
[client]
default-character-set =   gb2312


进入C:\xampp\mysql\bin目录下,修改文件my.cnf

[client]
# password       = your_password
port            = 3306
socket          =   "C:/xampp/mysql/mysql.sock"
default-character-set =   gb2312
# The MySQL server
[mysqld]
port= 3306
character-set-server =   gb2312


进入MySQL中键入命令:

Showvariables like '%char%';查看字符集是否为gb2312

mysql> Show variables like '%char%';

+--------------------------+--------------------------------+

| Variable_name            | Value                          |

+--------------------------+--------------------------------+

| character_set_client     | gb2312                           |

| character_set_connection | gb2312                           |

| character_set_database   | gb2312                          |

| character_set_filesystem | binary                             |

| character_set_results    | gb2312                           |

| character_set_server     | gb2312                          |

| character_set_system     | utf8                            |

| character_sets_dir       | C:\xampp\mysql\share\charsets\     |

+--------------------------+--------------------------------+

8 rows in set (0.00 sec)

paper.htmlpaper.jsp放入对应目录下,运行后,通过命令:

mysql>select * from paper;

来检查数据是否插入导数据库中,并且显示为中文

 

插入数据库中的工作做完了,然后我们来完成把数据库中的数据通过模板来生成网页文件,为什么要生成HTML格式的网页文件主要是为了能更好地让搜索引擎找到我们。首先我们来定义电脑版本的模板文件:

A1.html

<!DOCTYPE html PUBLIC   "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html   xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta   http-equiv="Content-Type" content="text/html;   charset=utf-8" />
<title>啄木鸟软件测试培训网--软件测试培训-- +++1   </title>
<meta name=Keywords   content="软件测试,软件测试培训,第三方软件测试,软件本地化,软件培训,软件测试培训">
<meta name=descripton   content=" +++3 ">
<link   rel="stylesheet" type="text/css"   href="../images/public.css"/>
</head>
<body>
        <iframe src="../include/head.htm"   width="100%" height="350" scrolling="no"   frameborder="0"></iframe>
    <div>
           <div>
                    <div><a href="../index.html">首页</a>  >    软件测试</div>
            <div>
                 <div>
                  <div>       
                      <p><b><font size="4"> +++1   </font></b></p>
                        <p>
                                                  +++2 </p>
                                                  <p><a   href="http://www.3testing.com">软件测试</a></p>
<p>  </p>
<p>  &nbsp;</p>
<span   style="float:right;">【<a   href="mailto:shaozz158@126.com">投稿</a>】</span><span   style="float:right;">【<a   href="javascript:window.close()"   style="color:#13A0FF;">关闭窗口</a>】</span><span   style="float:right;">【<a   href="javascript:window.print()" style="color:#13A0FF;">打印</a>】</span></p>
                    </div>
                </div>
                <iframe   src="../include/right.html" width="240"   height="640" scrolling="no" frameborder="0"   style="float:right;"></iframe>
            </div>
           </div>
    </div>
        <iframe src="../include/button.htm"   width="100%" height="120" scrolling="no"   frameborder="0"></iframe>
</body>
</html>


其中:

  • +++1:用标题来替换;
  • +++2:用内容来替换;
  • +++3:用标题的一部分来替换。

手机版本的模板文件也类似:

A2.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta   content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui"   name="viewport"/>
<meta   name="apple-mobile-web-app-capable" content="yes" />
<meta   name="apple-mobile-web-app-status-bar-style"   content="black"/>
<meta   content="telephone=no" name="format-detection" />
<!-- UC默认竖屏 -->
<meta   name="browsermode" content="application" />
<!-- QQ强制竖屏 -->
<meta   name="x5-orientation" content="portrait" />
<meta   name="x5-page-mode" content="app" />
<title>+++1</title>
<link   href="../css/cate.css" rel="stylesheet"   type="text/css" />
</head>
<body>
        <div>
           <div onClick="history.go(-1);"></div>
        <div>我的文章</div>
        <div   onClick="javascript:window.location.href='../index.html'"></div>
    </div>
    <div>
        <div>
              <div>+++1</div>
            <div>
                             <p>+++2</p>
            </div>
        </div>
    </div>   
    <div>
        <p>啄木鸟软件测试咨询网 版权所有 @2006-2017</p>
        <p>沪ICP备06048994号</p>
    </div>
    <div><a   onclick="pageScroll()"><img src="../images/top.png"   /></a></div>
<script>
function pageScroll(){
    window.scrollBy(0,-100);
    scrolldelay =   setTimeout('pageScroll()',100);
    var   sTop=document.documentElement.scrollTop+document.body.scrollTop;
    if(sTop==0) clearTimeout(scrolldelay);
}
</script>
</body>
</html>


然后让我们来看看如何让python文件来完成替换:

paper.py

#!/usr/bin/env python
#coding=utf8
import MySQLdb
import re
import time
import codecs
#把HTML中的特殊字符正则替换成HTML格式,一来防止乱码,二来防止CSS注入
def myrepeat(s):
          s=re.sub("<","&lt;",s)
          s=re.sub(">","&gt;",s)
          s=re.sub("\"","&quot;",s)
        s=re.sub("\r\n","<br>",s)
        s=re.sub("   ","&nbsp;",s)
        return s
def   deal(myfile,sig,title,content):
          f1=codecs.open(myfile,encoding='utf8') #以中文格式打开读文件
        myline=f1.read()
        # 替换模板文件标签
        myline=myline.replace('+++1',title)
        myline=myline.replace('+++2',content)
          myline=myline.replace('+++3',content[10:40])
        f1.close()
          f2=codecs.open(sig+time+str(i)+".html","w",encoding='utf8')#以中文格式打开写文件
        f2.write(myline)
        f2.close()
        return f2
if   __name__=="__main__":
        #连接数据库
        conn =   MySQLdb.connect(host="localhost",user="root",passwd="123456",db="mypaper",charset="gb2312")
        cur = conn.cursor()
        cur.execute("select * from paper   where sig=1")
        time=time.strftime('%Y%m%d',time.localtime(time.time()))
        lines =cur.fetchall()
        i=0
        for line in lines:
                title=myrepeat(line[1])
                content=myrepeat(line[2])
                  deal("A1.html","",title,content)
                  deal("A2.html","p",title,content)
#为防止下次在生成,把标签设置为1
                cur.execute("update   paper set sig=0 where id="+str(line[0]))
                i+=1
        print "转换成功"


在这里需要指出,由于要连接数据库,引入import MySQLdb,你必须先下载安装MySQL-python-1.2.3.win-amd64-py2.7文件,由于我这里是python2.7版本,所以必须以-py2.7结尾。在安装MySQL-python-1.2.3.win-amd64-py2.7的时候如果发现python2.7没有注册,你必须运行以下文件:

reg.py

# 
# script to register   Python 2.0 or later for use with win32all   
# and other extensions   that require Python registry settings 
# 
# written by Joakim Loew   for Secret Labs AB / PythonWare 
# 
# source: 
#   http://www.pythonware.com/products/works/articles/regpy20.htm 
# 
# modified by Valentine   Gogichashvili as described in   http://www.mail-archive.com/distutils-sig@python.org/msg10512.html 
import sys 
from _winreg import * 
# tweak as necessary 
version =   sys.version[:3] 
installpath =   sys.prefix 
regpath =   "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version) 
installkey =   "InstallPath" 
pythonkey =   "PythonPath" 
pythonpath =   "%s;%s\\Lib\\;%s\\DLLs\\" % (   
    installpath, installpath,   installpath 
) 
def RegisterPy(): 
    try:   
        reg = OpenKey(HKEY_CURRENT_USER,   regpath) 
    except EnvironmentError as e: 
        try:   
            reg =   CreateKey(HKEY_CURRENT_USER, regpath) 
            SetValue(reg, installkey, REG_SZ,   installpath) 
            SetValue(reg, pythonkey, REG_SZ,   pythonpath) 
            CloseKey(reg) 
        except: 
            print "*** Unable to   register!" 
            return 
        print "--- Python",   version, "is now registered!"   
        return 
    if (QueryValue(reg, installkey) ==   installpath and 
        QueryValue(reg, pythonkey) ==   pythonpath): 
        CloseKey(reg) 
        print "=== Python",   version, "is already registered!"   
        return 
    CloseKey(reg) 
    print "*** Unable to   register!" 
    print "*** You probably have another   Python installation!" 
if __name__ ==   "__main__": 
    RegisterPy()


然后在去安装MySQL-python-1.2.3.win-amd64-py2.7

 

好了,就到这里了,http://www.3testing.com/test/201701170.html 就是我用这种方法生成的网页


顾翔凡言:

一名优秀的软件测试工程师首先是一名优秀的软件需求分析师或软件架构设计师。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
79 7
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
151 26
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
273 15
|
3月前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
78 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
3月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
84 1
|
3月前
|
NoSQL 关系型数据库 MySQL
Tomcat、MySQL、Redis最大支持说明
综上所述,Tomcat、MySQL、Redis的并发处理能力均非固定值,而是通过合理的配置与优化策略,结合系统硬件资源,共同决定了它们在实际应用中的表现。开发者应根据应用的具体需求和资源条件,对这些组件进行细致的调优,以达到最佳性能表现。
47 0
|
关系型数据库 Linux 应用服务中间件
tomcat通过socket连接MySQL,不再占用服务端口【linux】
MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式)、PIPE和SHARED MEMORY连接方式。
1023 0
|
3月前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
312 7
|
3月前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
509 4
|
8天前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。