服务器部署mysql8.0.30及常见问题处理

项目场景:

免安装版本的mysql数据库环境部署到tomcat服务器及相关配置


1.部署前准备

对于一个新的服务器会有一些mysql需要的第三方插件需要在安装mysql前进行安装。否则会报如下错误,找不到VCRUNTIME140.dll,无法继续执行代码

遇到上述问题,可前往microsoft官网下载相关的插件

最新受支持的 Visual C++ 可再发行程序包下载 | Microsoft Learn

具体下载版本根据自身需求进行下载。

2.mysql环境部署

2.1、启动cmd命令

mysqld --initialize --console
Xh*S7Mz/14k_

启动正常如下图所示:

A temporary password is generated for root@localhost: Go.1H/87wT,y 其中Go.1H/87wT,y为我们mysql安装后默认的密码。

2.2、启动mysql服务器

mysqld --install mysql

运行正常如下图所示:

2.3修改数据库密码

这里的密码可修改也可不做修改,根据需求,引用上面的密码进行登录

mysql -root -pGo.1H/87wT,y

运行正常如下图所示:

对密码进行修改,其中'root'便是你的新密码


3.mysql安装或安装后遇到的问题:

3.1、1045 -Access denied for user 'root'@'localhost'(using password:YES)

数据库未修改密码,或者修改密码后,在连接mysql时报错:

 于此类似的还有1045 -Access denied for user 'root'@'localhost'(using password:NO)

解决方法:

在上述安装过程中没有报错信息的情况下,可通过如下几方面进行排查问题

1.确认mysql是否安装成功

2.服务中查看mysql是否启动成功

3.确认密码是否正确

问题原因分析:

上述异常有两个地方需要注意:

1.Access denied:拒绝连接

2.using password:NO/YES:使用密码错误

Access denied问题出现的原因可能有如下几方面:

1.mysql没有安装成功

2.mysql安装成功了,但是没有启动

using password:NO/YES问题出现的原因:用户密码输入错误,或者未输入,对于未输入密码常见的异常就是NO,密码输入错误为YES

3.2、navicat创建连接报错

原因:在用navicat连接MySQL8+时会出现2059错误,这是由于新版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。

解决方法:就是将验证方式改为以前版本(5.7及以下)使用的验证方式mysql_native_password。

3.3、程序运行过程中报错:Caused by: java.sql.SQLException: null, message from server: "Host 'WIN-H0SB

mysql> use mysql
No connection. Trying to reconnect...
Connection id:    11
Current database: *** NONE ***

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.03 sec)

这里的root的host是localhost,不允许远程访问,下面是对root的host进行修改为%,允许远程访问
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
这里flush privileges是为了刷新内存中的权限,就不用重启mysql服务了

3.4、程序运行过程中报错:Caused by: java.sql.SQLException: null,  message from server: "Host '19168.10.138' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

解决方法:

  1. 确认lib中mysql的版本是否匹配
  2. 登陆mysql刷新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值