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`@`%`;
-
在创建用户时,可能会提示你密码太简单了,不符合规定,改个复杂点的密码就行了。
参考: