mysql给root开启远程访问权限
本人在阿里云买了个服务器,自带mysql,感觉不能每次都通过Xshell去操作远程服务器,想尝试通过本地的sqlyog管理工具去连接, 但是即使账号密码全正确,也会报错:error no. 1045 access denied for user 'root'@'*****' (using password:YES)。
百翻查询才知道:MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.
!!!所以必须给root修改可以远程访问的权限
1.在连接服务器后,操作mysql系统数据库
命令为: mysql -u root -p
use mysql;
查询用户表命令:select User,authentication_string,Host from user
这里也可以看出host默认都是localhost访问权限
接下来就是最重要的部分了:
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
2.flush privileges; 这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
执行完这两步,再次查询用户表命令:select User,authentication_string,Host from user
发现多了一个用户,该用户所有的主机都可以访问,此时再次用sqlyog访问连接成功!
在Ubuntu 18.04 下安装mysql,没有初始密码,重设root密码
Linux下设置MYSQL5.7数据库远程访问
Linux下mysql 5.7 部署及远程访问配置
Ubuntu18.04 LTS server 安装mysql 5.7 并开启远程连接
MySQL5.7开启远程访问及Ubuntu18.04防火墙3306端口
Ubuntu 18.04 安装 MySQL 5.7【解决普通用户登录、密码修改、远程访问等问题】
MySQL 教程
如果root不能远程或本地访问,可以尝试重新安装
ubuntu18.04完全卸载mysql的命令
centos关闭防火墙和关闭服务自启动