问题一:使用Navcat连接银河麒麟虚拟机中的myslq数据库报错:2003-Can‘t connect to MySQL server on '192.168.65.132'(10060)
问题二:navicat创建数据库报错1044-Access denid for user
原因:这两个问题是因为mysql设置的权限问题。Mysql考虑到安全性,默认设置的权限是拒绝访问的,需要用户自己开放权限
按下面步骤操作可解决上述两个问题:
一、使用的端口是否正确
由于用的是mysql,监听的是 3306 端口
[root@localhost ~]# netstat -ntpl
有3306对应mysql表明该端口正确。
二、防火墙没有开放对应端口
2.1 查看是否有开放对应端口
[root@localhost ~]# firewall-cmd --list-ports
出现3306/tcp表明防火墙已经开放对应端口
2.2、若未开放如下图状态,则开放对应端口
# 开放对应端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# zone 作用域 # 3306/tcp 要开放端口 # permanent 永久开放 若没有这个参数,则防火墙重启后失效
success #启动成功
# 重新加载生效
[root@localhost ~]# firewall-cmd --reload
success #启动成功
2.3 检查是否成功开放
[root@localhost ~]# firewall-cmd --list-ports
可以看到
三、查看mysql有没有授予当前
[root@localhost ~]# mysql -u root -p
Enter password:
mysql>
# 1.先进入mysql数据库
use mysql;
# 2.在user表中创建账号
create user 'rootR'@'%' identified by 'pwd';
mysql的HOST分为两种:
1. ‘%’ : 代表匹配任意ip可以连接
2. ‘localhost’ : 代表只可以本机连接
# 3.修改密码(可忽略)
ALTER USER 'rootR'@'%' IDENTIFIED WITH mysql_native_password BY 'rootR.123';
# 4.给创建好的账号赋予远程权限
grant all privileges on *.* to 'rootR'@'%' with grant option;
# 5.刷新数据库
FLUSH PRIVILEGES;
# 6.查看数据库中的用户权限表
select User,authentication_string,Host from user;
四、使用navcat进行尝试连接
连接名可任意命名、主机填写虚拟机的ip地址(可在虚拟机使用ifconfig进行查看)、端口一般为默认、用户名选择root、输入账户的密码即可,确定之前最好可以进行连接测试。
开启navicat,新建bkrq数据库
如图,已经创建数据库成功了
退出mysql,navicat中删除连接,再新建一个新的连接,在新连接下创建数据库,因为我就是这样搞的,我之前给root授权后,又刷新一遍了,还是没成功,就重新创建连接再新建数据库,我估计是没刷新完全。
五、导入SQL数据
1、右击数据库,点击 ‘运行sql文件’
2、将bkrq初始化结构.sql 脚本导入
等待导入完成