mysql配置
上次配置好了tomcat,现在已经可以进行后端的编写了,但是看了很久,毕设需要的后端凑个数据库就够了,所以剩下的就是配置mysql了,前面听朋友说配置tomcat挺麻烦的,但是仔细看看也还好,所以就硬着头皮上了。配置过程没来得及截图,纯文字硬总结。
首先直接用安装指令安装mysql
yum install mysql-server
等待全自动的安装完成后运行mysql,这里因为一点小问题卡住了,可能是因为之前安装全家桶的时候里面自己带了一个mysql的安装,这次安装出现了套接字路径错误的问题,这种情况需要查看一下错误信息:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
这个意思是说运行mysql需要的sock文件没有出现在规定的路径上,所以解决方法也很简单,找到这个sock文件再移动到需要的路径下就好了,之后通过mysql -u root -p指令进入mysql的界面,现在为了方便管理,可以新建一个用户,让本地的navigate可以连接到云端的数据库,新建用户的代码并不难,在mysql内部使用指令
create user '设定的用户名'@'%' identified by '密码';
里面的@可以改成localhost,这样就变成只允许本地连接的用户了,现在创建好之后还需要给已经创建好的账户权限,这里又一个大坑,网络上绝大多数的教程用的都是下面这一行代码:
grant all privileges on *.* to '用户名'@'%'identified by '密码' with grant option;
然而使用时一直报错,翻译一下后是语法错误,错误在identified那里,也不知道是什么问题,查了很久,原来因为版本的变化,最新版把identified后面去掉了,去掉这一部分就没有语法错误了。
将权限给新建的远程用户之后,就可以利用navigate远程连接数据库了,这样在数据库里面创建修改也会方便很多,新建数据库和表之后,一切的后端配置也算完成了,差一个代码。
后端数据库的连接
翻出来之前大三上学期教java企业级开发写的代码,当初教过JDBC的使用,接着用eclipse写当初的代码,把JDBC需要的jar包放在lib文件夹下面,放上建立连接需要的语句:
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/数据库的名字?serverTimezone=GMT%2B8";
String username = "数据库用户名";
String password = "数据库密码";
Connection conn = DriverManager.getConnection(url,username,password);
剩下的完全就是按照当初JDBC的教程来,放上三个代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%@page import="com.lyq.bean.Book"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.*" %>
<%@page import="java.io.IOException" %>
<title>添加图书信息</title>
<script type="text/javascript">
function check(form){
with(form){
if(name.value == ""){
alert("图书名称不能为空");
return false;
}
if(price.value == ""){
alert("价格不能为空");
return false;
}
if(author.value == ""){
alert("作者不能为空");
return false;
}
return true;
}
}
</script>
</head>
<body>
<table align="center" width="450" border="1" height="180" bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
<tr bgcolor="white">
<td align="center" colspan="5">
<h2>所有学生信息</h2>
</td>
</tr>
<tr align="center" bgcolor="#e1ffc1" >
<td><b>ID</b></td>
<td><b>姓名</b></td>
<td><b>性别</b></td>
<td><b>年龄</b></td>
<td><b>修改</b></td>
</tr>
<%
try{
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database10?serverTimezone=GMT%2B8";
String username = "root";
String password = "04050907";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt=conn.createStatement();
String sql="select * from tb_student_batch";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
%>
<tr align="center" bgcolor="white">
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getInt("sex")%></td>
<td><%=rs.getInt("age")%></td>
<td><button><a href="Delete.jsp?id=<%=rs.getInt("id")%>" >删除</a></button></td>
</tr>
<%
}
rs.close();
conn.close();
}catch (Exception e) {
out.print("数据库连接失败失败!");
e.printStackTrace();
}
%>
</table>
<form action="AddBook.jsp" method="post" onsubmit="return check(this);">
<table align="center" width="450">
<tr>
<td align="center" colspan="2">
<h2>添加学生信息</h2>
<hr>
</td>
</tr>
<tr>
<td align="right">姓名:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td align="right">性别:</td>
<td><input type="text" name="sex" /></td>
</tr>
<tr>
<td align="right">年龄:</td>
<td><input type="text" name="age" /></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="添 加">
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<%@page import="com.lyq.bean.Book"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.*" %>
<%@page import="java.io.IOException" %>
<title>Insert title here</title>
</head>
<body>
<%
int id=Integer.valueOf(request.getParameter("id"));
try{
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database10?serverTimezone=GMT%2B8";
String username = "root";
String password = "04050907";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt=conn.createStatement();
String sql="delete from tb_student_batch where id=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, id);
ps.executeUpdate();
ps.close();
conn.close();
}catch (Exception e) {
out.print("数据库连接失败失败!");
e.printStackTrace();
}
%>
<script type="text/javascript">window.location.href="index.jsp"</script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加结果</title>
</head>
<body>
<jsp:useBean id="book" class="com.lyq.bean.Book"></jsp:useBean>
<jsp:setProperty property="*" name="book"/>
<%
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database10?serverTimezone=GMT%2B8";
String username = "root";
String password = "04050907";
Connection conn = DriverManager.getConnection(url,username,password);
String sql = "insert into tb_student_batch(name,sex,age) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, book.getName());
ps.setInt(2,book.getSex());
ps.setInt(3,book.getAge());
int row = ps.executeUpdate();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
<br>
<script type="text/javascript">window.location.href="index.jsp"</script> --%>
</body>
</html>
最后的运行结果如下:
输入学生信息之后点击添加:
添加后的信息可以在所有学生信息中查询到刚才添加的学生信息:
点击删除之后刚才添加进入的学生信息就没了:
至此服务器的配置也算是全部搞定了,nginx到域名,再到tomcat动静分离,最后配置上数据库,毕设需要的基本都搞定了,后序摸鱼日记随缘更新吧。准备复试!