记一次Linux上Mysql安装后,war项目无法访问数据库

web项目的部署操作,可以浏览我的另一篇博客,本文主要针对MySql数据库的一些问题

1.安装Mysql

方法一:MySql官网下载数据库,上传到Linux服务器;

方法二:也可以采用yum安装

2.安装好之后,总命令行输入 mysql_secure_installation,进行一些配置,内容如下:

a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效
执行之后systemctl restart mysqld命令可以正常执行了

3.用root登陆mysql       mysql -uroot -p

第一次不进行2操作的话,可以直接回车就登陆mysql了,但是如果进行了2配置,则需要输入新的密码

4.虽然使用ssh root@ip  登陆远端linux服务器,也可以登陆mysql,但是奇怪的是我的打包的java war 包项目部署到Linux的Tomcat的webapps下时,访问出现问题,虽然页面可以访问到,但是只有涉及数据库的操作,都无法实现,百般周折之后才得知是因为:

MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.

接下来解决此问题

5.解决办法

5.1 给root用户授权

给mysql的用户设置权限,首先登陆mysql,然后给root用户配置所有的权限

如果出现了1819错误,这个其实与validate_password_policy的值有关。如果没有次错误请飘过

validate_password_policy有以下取值:
Policy    Tests Performed
0 or LOW         Length
1 or MEDIUM    Length; numeric, lowercase/uppercase, and special characters
2 or STRONG    Length; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

mysql> select @@validate_password_length;  查看密码长度

5.2密码长度解决之后,接下来如果你出现如下错误3009,该错误是密码正确

错误是由于你曾经升级过数据库,升级完后没有使用

mysql_upgrade升级数据结构造成的。

解决办法:

使用mysql_upgrade命令
root@localhost ~]# mysql_upgrade -u root -p 13456

5.3都ok了之后,继续登陆mysql,继续刚才的授权

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值