【mysql】数据库连接1130错误,php连接数据库1044错误,mysql远程连接1130错误

1130 - Host '192.168.0.101' is not allowed to connect to this MySQL server
1044 Access denied for user 'tp999'@'%' to database 'tp999'
image
image

解决

  • 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用户进入,只能看到属于它的数据库
    image

我们转到的它操作日志可用看到(如何让mysql记录操作日志见结尾链接):

  • cd /www/server/data 进入宝塔的软件安装目录下的数据目录
  • ll 打印一下,应该可以看到 localhost.log文件
  • cat localhost.log 获取文件内容,文件内容如下:
    image
    黄框就是宝塔用来建库的代码,绿框是主要的步骤。

主要步骤:

  1. 创建一个 tp123456789 的数据库
  2. 创建一个 用户名为 tp123456789,密码为 tp123456789 的用户
  3. 授予 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`@`%`;

在创建用户时,可能会提示你密码太简单了,不符合规定,改个复杂点的密码就行了。

参考:

posted @ 2021-06-09 00:18  蜜蜂老牛黄瓜  阅读(332)  评论(0编辑  收藏  举报