Linux 环境下,安装 mysql 完成之后,就可以使用 root 帐户,操作本地数据库了。如果使用服务器端程序脚本(php)或者 远程连接 mysql,来访问和操作 localhost 的 mysql,就需要给 mysql 用户授权。

远程访问,不想公布 root 账户,可以在 mysql 数据库 user 表创建一个 demo 账户,允许 demo 账户在任何地方都能访问 mysql 数据库中的指定库。下面是具体操作:

在安装 mysql 的机器上运行,选择 mysql 这个库:

需要创建 user 用户 demo,密码为:123456

1
CREATE USER demo IDENTIFIED BY '123456'

给 demo 用户授权(这里指定 shandong 这个数据库的所有权限)并可以远程访问:

1
GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'WITH GRANT OPTION

上两条 sql 可以直接使用下面一条 sql 操作实现,赋予任何主机访问数据的权限。

1
GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

修改生效:

1
FLUSH PRIVILEGES;

退出 mysql 服务器,这样就可以在其它任何的主机上以 demo 身份登录。

常见 远程连接 mysql报错解决方法:

当用客户端连接 mysql 时,发现无法连接,看来需要对用户进行重新授权。操作如下:

1
grant ALL PRIVILEGES ON *.*to root@"%" identified by "mysql" WITH GRANT OPTION;

此刻, root 可以被 远程连接 mysql,当然这里建立其他非 root 用户也可以远程连接。

mysql 1130 错误解决方法:

通过 MySQL-Front 或 MySQL administrator 连接 MySQL 的时候发生的这个错误,

1
ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server

说明所连接的用户帐号没有远程连接的权限,只能在本机 (localhost) 登录,需更改 MySQL 数据库里的 user 表里的 host 项,把 localhost 改称 %。操作如下:

1
2
3
update user set host='%' where user = 'root'

flush privileges;// 使权限立刻生效

远程连接 mysql,连接…成功!

本文地址 https://shaoshilei.com/2014-04/explains-how-to-remotely-connect-mysql-and-authorization-method.html