目 录
Mysq在Linux系统中用的非常多,有的Linux默认都安装了MySQL;大部分时候,大家都习惯采用图像化的数据库客户端访问mysql等数据库,比如navicat就非常好用。
数据库的增删改查等操作大家基本都会,在navicat上操作更是方便。而我发现很多人经常回碰到标题所述两个问题,所以,今天给大家重点总结一下。
一、不能通过navicat等数据库客户端远程访问
(一)问题确认
有时候我们发现使用navicat无法连接成功,而网络是通的,端口也是对的。 这时候,大部分原因是因为mysql没有开启允许远程访问。
我们也可以登录到mysql上查看,输入命令:
select User,authentication_string,Host from user;
结果如下图:
可以看出root用户,host为只允许本机登录,说明没有开启远程访问。
(二)解决方法:开启远程可访问
有如下两种方法,
1、输入授权命令的方式
可以按照以下步骤操作:
(1)登录到mysql
[root@localhost ~]# mysql -uroot -p
输入mysql的root密码,然后回车
(2)进入数据库mysql
Mysql[(none)]> use mysql;
(3)设置用户 root 可以在任意 IP 下被访问
Mysql[mysql]> grant all privileges on *.* to 'root'@'%' identified by '123456';
(4)设置用户 root 可以远程被访问:
Mysql[mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
(注:Mysql[mysql]>后面的是完整的一段,copy请copy好了,也别漏了;号)
(5)刷新权限表使修改生效
Mysql[mysql]> flush privileges;
2、直接更改数据库中的用户表
直接修改更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为"%"
update user set host='%' where user='root';
二、修改数据库的密码
由于mysql的用户表中的密码是加过密的,这里,我们就不要直接修改数据表了。就采用命令方式来修改密码,请按照如下步骤进行
[root@localhost ~]# mysql -uroot -p
Mysql[(none)]> use mysql;
Mysql[mysql]> alter user 'root'@'localhost' identified by 'newpassword';
(注: ( 1 ) 'newpassword' 是你要修改后的密码;
(2 ) ocalhost' 是数据库所在机器的名字或 IP 地址;
(3 ) mysql5.7 以上版本使用语句
update user set authentication_string=passworD("newpassword") where user='root';)
Mysql[mysql]> grant all privileges on *.* to 'root'@'%' identified by 'newpassword';
Mysql[mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
(注: Mysql[mysql]> 后面的是完整的一段, copy 请 copy 好了,也别漏了 ; 号 )
Mysql[mysql]> flush privileges;
若想更改其他用户的密码,也可以采用此方式,把root改成其他用户名即可
由于AS-V1000视频监控平台是基于linux&mysql系统的,经常会用到这些情况。