【已解决】启动nacos报错:No DataSource set

【已解决】启动nacos报错:No DataSource set_第1张图片
我的nacos布在本地虚拟机上,数据库装在本地,用的是MySQL。

启动的时候一直报错:No DataSource Set

百度了以下,说是数据库连接的超时时间太小了。

于是我调大了超时时间。

原配置: &connectTimeout=1000&socketTimeout=3000
修改后:&connectTimeout=10000&socketTimeout=30000

增加了十倍大小。

但是,很不幸,还是他娘的报错!

而且我用虚拟机ping了一下,本机的ip地址,发现可以ping的通。

真是奇怪,为啥数据库连不上了呢,为啥呢?

我抓耳挠腮,百思不得其解。

忽然灵光一闪,莫非是root用户没有开启远程登录权限 ?

抱着试试看的态度,我打开了root远程登录权限。

我装的数据库是MySQL8,所以给root用户授权的语句,可以这样写

USE mysql;  #一定要使用mysql表,因为授权只能在这个表里授权。

查看当前用户的权限。

select host,user from user;

【已解决】启动nacos报错:No DataSource set_第2张图片
果不其然,root用户只能在本地访问。

修改root权限为,可以远程登录。

update user set host='%' where user='root';

刷新权限

flush privileges;

再次启动nacos,问题得以解决

MySQL8以前的版本,给root用户授权的语句,如下:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
All : 表示所有操作,比如select,update,insert等操作
*.* :表示所有库的所有表(test.*则表示test库的所有表)。
root :表示授权的用户名。
% :表示可以从任意地方登录,如改成192.168.0.999,则表示只能从ip地址为192.168.0.999的机器登录
123456 :表示授权的用户名的密码。

备注

这个报错信息,有可能是端口未开放远程访问导致的。

如果你是windows系统,可以参考以下链接,开放3306端口。

Win10防火墙放行MySQL3306端口

你可能感兴趣的:(踩过的坑,Linux+Docker,mysql,数据库)