欢迎大家参观我的新网站,悦来yuelai.xyz
本篇文章原地址点击这里
一不小心,电脑重置了,各种软件都要重新安装,不过大部分都很顺利,但是当我安装MySQL的时候,遇到了各种各样的问题,因为使用的是社区版MySQL目前最新的版本,结果就对我以前写的web项目产生了影响,在此记录一下:
##mysql安装过程:
MySQL下载: https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip
下载的是压缩包版本的
解压缩之后,存放路径如下:
无标题.png
在mysql根目录下面新建一个my.ini文件,输入以下代码:
[Client]
port = 3306
[mysqld]
#设置端口
port = 3306
# 设置mysql的安装目录
basedir=C:\mysql
# 设置mysql数据库的数据目录
datadir=C:\mysql\sqldata
# 允许最大连接数
max_connections=200
# 设置服务端字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
保存之后,用管理员身份运行命令行,进入mysql的bin目录,输入以下命令,初始化mysql:
mysqld --initialize --user=mysql --console
初始化成功后,系统会在mysql目录下创建sqldata目录,并生成初始密码。将生成的初始密码记录下来
输入以下命令开始安装mysql:
mysqld --install mysql
Service successfully installed.安装成功
输入以下命令启动mysql:
net start mysql
开始登陆mysql,输入刚才生成的初始密码:
mysql -u root -p
这里写代码片
修改mysql登录密码,命令如下:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码';
到此mysql安装完毕,可以设置环境变量,操作更方便
MYSQL_HOME设置mysql根目录
Path设置mysql根目录下的bin目录
##修复错误
安装成功之后,用NaviCat连接问题就开始出现了,因为是新版本的mysql,而我的NaviCat是11.x的老版本
提示Client does not support authentication protocol requested by server,新老版本的认证协议不同,要么更新NaviCat,要么就和我一样继续使用老版的认证方式,方法如下:
打开命令行登录mysql,执行以下代码:
USE mysql;
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
flush privileges;
再次尝试连接,就可以连接成功了。
mysql的问题基本解决了,但是Javaweb还是不能用,因为数据库连接的一些东西需要更改:
第一个是mysql-connector的jar包,我以前用的5.1.26结果连接的时候出现了各种问题,然后更换了更高版本的jar包之后,问题解决了
mysql-connector-java-8.0.11下载:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
第二个是数据库驱动,com.mysql.jdbc.Driver用了这么久也该换了,新版的mysql驱动是com.mysql.cj.jdbc.Driver
第三个是MySQL的url需要设置useSSL=false&serverTimezone=UTC
,如果不设置useSSL=false则需要SSL连接,暂时不需要,所以必须显式声明;serverTimezone=UTC设置时区,不然会报错The server time zone value ‘�й���ʱ��’ is unrecognized or represents …
还有一点就是两者之间的&替换为&
,不然又会报错提示必须以 ‘;’ 分隔符结尾。
到此总算是可以正常使用了,费了好大劲。
题外话:
win10加入了预览版,提示我版本快过期了需要升级,以前从没有升级失败过,就开始升级了,结果升到98%不动了,1个小时没反应,没办法强制关机了,再打开就出现问题不能使用了,实在没办法只好重置了!预览版谨慎加入,最好不要用工作电脑,唉,为了体验新功能这就是代价啊!