第九周学习总结
20175205 2018-2019-3 《Java程序设计》第九周学习总结
教材学习内容总结
phpmyadmin 建表里面的数据怎么理解
- 数据表的名称
- 添加部分,是说假如我们在编写数据表的过程中,突然发现还有什么想加入的,就在这里选择加N条数据即可,选好了,点击后面的执行,下方就会多出添加数量的条数。
- 名字,填写一些我们需要的条目名称
- 类型,根据name选的,数字类型这里就选int整型,文字就选VARCHAR类型
- 长度/值,根据name设置的,根据实际情况设置
- 排序规则,一般选择utf8_bin格式,意义是将字符串每个字符串用二进制数据编译存储,不会造成乱码或者其他情况
- 索引,其目的主要是提高查询速度的作用,就比如我们查询一组手机号码,但是设想我们如果知道首四位什么的,就会比啥也不知道要好查询的多。但是其实它是有副作用的,在提高查询速度的同时,会降低mysql语句插入和更新的速度。
- A_I,是自增的意思,所以我们一般只给主键id设置,意思是在设置过程中,不用设置,它会自动增加。A_I和索引对于主键来说是相辅相成的
- 注释,是数据表条目数的注释,防止我们会忘记条目的意义,在后来的数据表上方会显示的。
- 表注释,与注释一个意思,为了注释这个数据表的主题
- 它的意思和排序规格是一样的
- 存储引擎,选择MyISAM,简单的说就是存储方式。
MYISAM和INNODB是Mysql数据库提供的两种存储引擎。INNODB会支持一些关系数据库的高级功能,如事务功能和行级锁,MYISAM不支持。MYISAM的性能更优,占用的存储空间少。所以,选择何种存储引擎,视具体应用而定。
教材学习中的问题和解决过程
Q:MySQL管理工具与数据库服务器建立连接时,出现报错1251解决方案
A:原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错,因此要更改加密方式。
- 先通过命令行进入mysql的root账户,再输入root的密码
PS C:\Windows\system32> mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.11 MySQL Community Server - GPL
Copyright (c) 2000, 2018, 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>
- 更改加密方式
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.10 sec)
- 更改密码:该例子中 123为新密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
Query OK, 0 rows affected (0.35 sec)
- 刷新
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.28 sec)
Q:在数据库中创建表时,发现了一个新数据类型,varchar
A:varchar(m)是一种比char更加灵活的数据类型,同样用于表示字符数据,但是varchar可以保存可变长度的字符串。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
Q:安装XAMPP又遇到了XAMPP Error: Apache shutdown unexpectedly
A:Apache服务使用的端口被占用了,Apache默认端口号80。
-
因此我更改了Apache的端口:
-
修改httpd.conf的Listen:80 为Listen:81(或其他):
-
修改httpd-ssl.conf的Listen:443为Listen:4433(或其他):
-
重启Apache,就好啦
Q:但是,启动Mysql启动失败,心态爆炸,我又到处去找解决办法,各种尝试,显示如下啊
13:51:29 [mysql] Problem detected!
13:51:29 [mysql] Port 3306 in use by ""E:COMPUTERMysqlbinmysqld" --defaults-file="E:COMPUTERMysqlmy.ini" MySQL51"!
13:51:29 [mysql] MySQL WILL NOT start without the configured ports free!
13:51:29 [mysql] You need to uninstall/disable/reconfigure the blocking application
13:51:29 [mysql] or reconfigure MySQL and the Control Panel to listen on a different port
13:51:29 [mysql] Attempting to start MySQL app...
A:
- 在xampp根目录下找到文件properties.ini,将3306改为任意值(例如3366)
[MySQL]
mysql_port=3306
- 在xampp根目录下找到文件xampp-control.ini,将3306改为与上面相同的数字(此时为3366)
[ServicePorts]
Apache=80
ApacheSSL=443
MySQL=3306
- 打开xampp.control.exe 按照图片操作
Q:改了端口问题,就变成Attempting to start service...这样的问题,总之还是无法启动
A:后面才发现是我电脑上安装了mysql的软件,如果电脑已经安装了mysql的软件,要使用xampp的话,那么就要修改一下注册表。
-
win+r
打开命令行,输入regedit
修改注册表
-
按照HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
我之前的是D:\MySQL\MySQL Server 8.0\bin\mysqld后面改成这个D:\XAMPP\mysql\bin\mysqld
改完之后就成功啦~
Q:无法连接phpMyAdmin,出现如下错误
A:是因为我之前更改过密码,这时候通过wampserver访问phpmyadmin会发现无法访问,没有权限,需要输入密码
打开D:\XAMPP\phpMyAdmin,找到config.inc.php文件,将$cfg['Servers'][$i]['user'] = 'root'
在password对应的后面写上之前设置的密码,然后就可以登录phpmyadmin了!_
代码调试中的问题和解决过程
Q:IDEA连接数据库时,出现了如下问题
A:
-
异常是
Loading class 'com.mysql.jdbc.Driver'.This is deprecated.The new driver class is com.mysql.cj.jdbc.Driver.
整合spring boot项目过程中出现的,用了最新的mysql 连接驱动
只需将com.mysql.jdbc.Driver
改为com.mysql.cj.jdbc.Driver
-
异常是
Exception in thread "main" java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
使用的是MySQL 8.0版本的时候出现的问题错误,需要在访问数据库的Url后面加上以下的语句即可:?serverTimezone=GMT%2B8