1130 - Host '192.168.0.101' is not allowed to connect to this MySQL server
1044 Access denied for user 'tp999'@'%' to database 'tp999'
解决
- mysql -u root -p 以root身份进入mysql
- grant all on *.* to 'root'@'%' identified by 'root用户的密码' with grant option; 授权
- flush privileges; 刷新权限
原理:开放其他ip对数据库的访问权限
- 授予root用户在任何ip访问下对所有库所有表的操作权限
- 其中:GRANT 中文意思为“授予”的意思,用来创建用户或修改用户权限。
- % 表示任意ip
- *.*表示所有数据库,所有表
如果想了解更多,建议直接拉到结尾的链接,看官方文档
这样的方式虽然简单,但感觉不太靠谱,我们可以学习宝塔面板建库的流程。
记住 flush privileges; 语句,如果配置不生效,就刷新一下
宝塔面板创建数据库流程:
- 输入用户名, 数据库名, 用户密码
- 创建对应的mysql用户,和对应的数据库
- 用该mysql用户进入,只能看到属于它的数据库
我们转到的它操作日志可用看到(如何让mysql记录操作日志见结尾链接):
- cd /www/server/data 进入宝塔的软件安装目录下的数据目录
- ll 打印一下,应该可以看到 localhost.log文件
- cat localhost.log 获取文件内容,文件内容如下:
黄框就是宝塔用来建库的代码,绿框是主要的步骤。
主要步骤:
- 创建一个 tp123456789 的数据库
- 创建一个 用户名为 tp123456789,密码为 tp123456789 的用户
- 授予 tp123456789用户 对 tp123456789 数据库的所有操作权限
宝塔建库语句
- create database `tp123456789` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 建库
- CREATE USER `tp123456789`@`127.0.0.1` IDENTIFIED BY 'tp123456789'; 建用户
- grant all privileges on `tp123456789`.* to `tp123456789`@`127.0.0.1`; 授权
感觉这样好点,不是直接用root用户登录。一个mysql用户对应一个数据库,它们只能操作被授权的数据库。
-
如果需要远程登录,要这么做:
- CREATE USER `tp123456789`@`%` IDENTIFIED BY 'tp123456789'; 创建一个远程登录的mysql用户,用户名密码还是tp123456789。
- grant all privileges on `tp123456789`.* to `tp123456789`@`%`; 授权
-
如果不需要远程登录了,就直接删掉用于远程登录的用户
- revoke all privileges on `tp123456789`.* from `tp123456789`@`%`; revoke是grant的相反操作
- drop user `tp123456789`@`%`;
在创建用户时,可能会提示你密码太简单了,不符合规定,改个复杂点的密码就行了。