搭服务器
1 先去租个服务器
我选的是阿里云的服务器
2 登录
通过控制台进行远程连接,用vnc连接,记住啥密码(可以改的)。登录的密码得去控制台那里重置实例密码就行了,然后就可以登录了。
##3 换个Ubuntu系统,windows卡死了
按照这个博客安装jdk,tomcat
https://www.jianshu.com/p/9fd0377c130e
3 Ubuntu命令
ls 显示当前目录所有文件或文件夹。
touch 创建文件。
cat 打开指定文件,并且将文件中内容显示在终端。
mkdir 创建文件夹。
rmdir 删除文件夹 只能删除空文件夹。
rm 删除文件 后面加个r 意思是先把文件夹中文件删除,再把文件夹删除。
vi filename: 打开或新建文件,并将光标置于第一行首 。
新增 (append)
a :从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动。
A:从光标所在列最后面的地方开始新增资料。
插入 (insert)
i:从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动。
I:从光标所在列的第一个非空白字元前面开始插入资料。
开始 (open)
o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。
r :修改光标所在字元,r 后接着要修正的字符。
R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s:删除光标所在字元,并进入输入模式。
S:删除光标所在的列,并进入输入模式。
:w 保存当前文件 (前面都是有冒号的,退出编码模式的时候用,按esc退出编码模式)
:e filename 打开文件filename进行编辑
:x 保存当前文件并退出
:q 退出vi
:q! 不保存文件并退出vi
4 安装mysql
- 在ubuntu下安装MySQL:
apt-get update
apt-get install mysql-server
。我安装的时候没有要求输入密码。
打开一个文件debian.cnfsudo vim /etc/mysql/debian.cnf
,可以看到里面有MySQL的默认用户和密码
通过默认用户和密码进入mysql
mysql -u debian-sys-maint -p
然后终端会提示你输入密码
Enter password:
输入文件中的密码即可成功登陆。
当然了,这之后就要修改密码了,毕竟密码太难记。
mysql> update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';
如果显示:
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
则代表成功修改,之后需要重启**MySQL,方可登录成功。
则代表成功修改,之后需要重启**MySQL,方可登录成功。
- 常用MySQL命令:
- 查看MySQL服务状态:service mysql status 。
- 停止MySQL服务器:service mysql stop 。
- 开启MySQL服务器:service mysql start 。
- 重启MySQL服务器:service mysql restart 。
- 配置:
(1)查看3306端口是否开启:netstat -an | grep 3306
。这个在阿里云的安全组中配置打开,不开启的话MySQL数据库无法运行。
(2) 登录mysql后输入 show databases
; 就可以查看当前的数据库
输入use mysql
更换数据库,然后输入show tables
,显示表
默认情况下,mysql的账号是不允许从远程登录的,只能在localhost登录。
查看mysql账户信息:(用户名和允许登录的主机地址)
use mysql;
select host,user from user;
(3)修改root用户的登录主机:update user set host='%' where user='root';
。允许root用户从远程登录MySQL。同时还要修改MySQL的配置文件,使得远程主机可以使用远程登录来连接MySQL数据库。
在Ubuntu上,配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf
。使用vim打开,找到bind-address=127.0.0.1
将其修改成0.0.0.0
即可。这样就允许任何ip的主机使用远程连接到该MySQL数据库。也可以直接注释掉那句话。
MySQL的配置文件可以有多个不同位置的文件,其具体位置和应用优先级可以参考官网。
(4)重启服务器,使配置生效。service mysql restart
。
注意: 在linux下,数据表名称的大小写敏感! 因为在windows下开发,默认mysql中大小写是不敏感的;而在linux中,默认是大小写敏感的。如果不配置,JDBC操作数据库时就很容易出问题。
在MySQL的配置文件(同第3点的位置)中,找到[mysqld]
节点,在其下面加入:lower-case-table-names=1
。
还可以加入:character_set_server=utf8
,解决中文乱码的问题。
取值范围有三个,分别是0、1、2:详见官方文档 。
- 设置成
0
:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时大小写敏感。 - 设置成
1
:表名转小写后存储到硬盘,比较时大小写不敏感。 - 设置成
2
:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时统一转小写比较。
- 使用Navicat远程连接数据库
出现了ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’
因为除了上述操作还不够,密码改成功之后,查看select user,plugin from user
,plugin root 的字段是auth_socket是错误的,要改成mysql_native_password
输入下面的语句
update user set authentication_string =password('你的密码'),plugin='msyql_native_password' where user='root'
退出之后,重启mysql就行了。
至于Navicat的操作就是新建一个常规连接就行
5 部署项目
在eclipse中右键项目–Export–WAR file
自己定war文件的位置
将mysql数据库的驱动jar包上传到tomcat服务器的lib目录(把项目用到的jar包移进去
把war移动到webapps文件夹下。
重新启动tomcat 7,tomcat会自动将war包解压出来执行,然后就可以通过服务地址访问自己的项目了。
运行结果如下:
问题
1 用Ubuntu服务器的时候,vim编辑器出现乱码
解决方案如下:
$ sudo vim /etc/vim/vimrc
在最下面添加如下配置
set fileencodings=utf-8,gbk,utf-16le,cp1252,iso-8859-15,ucs-bom
set termencoding=utf-8
set encoding=utf-8
退出,重新进入vim编辑器,即可解决此问题。
2 测试java程序
详见大佬的博客:https://blog.csdn.net/u010900574/article/details/50792353
编译过程
//首先进入Src文件夹
javac -Djava.ext.dirs=../Library/ *.java -d ../Output/
//指定输出编译文件的位置为上级目录的Output文件夹
但是我这还是有问题,因为我是用Eclipse编完然后传进Ubuntu的,然而我的Eclipse是GBK编码的,这样输入命令的话有错误,因此
javac -encoding GBK -Djava.ext.dirs=../Library/ *.java -d ../Output/
执行过程
先进入Output文件夹
//主函数所在文件是Server.java
java -Djava.ext.dirs=../Library Server
3 一直连不上数据库
1 首先查看MySQL的版本
在终端下执行 mysql -V
root# mysql -V
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using
发现是我的驱动程序的版本低了(其实没低)
2 Java EE项目一直连不上数据库,获取连接失败
原因:我只把jar包导入了项目,但是没有导入进tomcat中
解决方法:把jar包复制进入项目的WebContent->WEB-INF->lib中
4 传输数据乱码
1 修改tomcat服务器的配置文件,具体目录在Tomcat安装目录/conf/server.xml文件,加上后面两句,重启服务器
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" />
2 用下面语句看一下数据库编码格式
’show variables like 'character_set%
如果其中哪一项不是utf-8,就把他改成utf-8。
具体修改方法我也是网上参考别人的方法,尊重原创作者
http://blog.chinaunix.net/uid-545411-id-2385599.html
3 修改连接数据库的服务器的代码
加上这句话useUnicode=true&characterEncoding=UTF-8
static String url = "jdbc:mysql://localhost:3306/bishe?useUnicode=true&characterEncoding=UTF-8";
搞定