mysql数据库默认是不允许远程访问的,要想能远程访问mysql,必须进行授权.
授权方式:
如果使用的是可视化插件:
在可视化插件比如SQLyong上执行:
grant all privileges on *.* to 'root' @'%' identified by 'yourpassword';
如果使用的是命令行窗口:
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -uroot -pyourpassword
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限
FLUSH PRIVILEGES
在远程访问改服务器上的mysql:
eg: mysql -uroot -pqishiyoumima -h 远程mysql服务器ip 提示 welecome to the MySQL monitor, 则说明可以访问
MySQL修改密码方式:
用set password 命令
首先登录MySQL.
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
此时,退出可视化插件,再打开发现连不上了,必须使用新密码才能连上.
可在命令行中验证一下新密码是否生效,如图,使用新密码 qishiyoumima 去连接, 出现Welcome to the MySQL monitor 说明新密码生效了
总结:
1 给所有远程主机授予访问该mysql的权限(通过密码qishiyoumima) , 也即添加一个用户名为root ,密码为qishiyoumima ,权限为%(表示任意ip都能连接)的远程连接用户GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY 'qishiyoumima';
2 给指定ip为10.0.123.234 的主机授予访问该mysql的权限(用过密码qishiyoumima)
GRANT ALL PRIVILEGES ON *.* TO 'root' @'10.0.123.234' IDENTIFIED BY 'qishiyoumima';
3 刷新权限使授权生效
FLUSH PRIVILEGES
4.1 更改本地主机mysql密码( @'%'表示针对非本地主机, @host 表示针对本地主机)
SET PASSWORD FOR root@localhost=PASSWORD("wybzdmm");
4.2 更改远程连接账户的密码
SET PASSWORD FOR qx@'%'=PASSWORD('123qwe');
5 查看有哪些远程连接
上面那些 带"%" 的, "%"表示可以从远程连接
6 删除远程连接账户
drop user root@'%';
此时,再用远程连接账户的账号密码去连接就连不上了,没有权限