mysql默认的只能在本地即localhost上打开

mysql的用户存在与mysql的数据库中的user表中,默认只创建用户语句,即为在user表中插入一条数据即可

创建了一个名为:zhangsan 密码为:1234  的用户:

mysql> insert into mysql.user(Host,User,Password) values("localhost","zhangsan",password("1234"));



授权:

格式: grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";

“登录主机”表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可,它和@质监没有空格。

①:创建一个用户,用户名zhangsan,密码123456,并且可以在192.168.9.123上访问,更新,插入,删除操作。

mysql> grant select,update,insert,delete on *.* to zhangsan@192.168.9.123 identified by "123456";



②:可以修改本身存在的用户在本机外访问数据库,如用户root(实际上是插入了一条数据,不是修改,这个了解即可):

mysql> grant all privileges on *.* to 'root' @'%' identified by '123456';

<!--all privileges表示所有权限,@后面跟的是地址,中间不能有空格-->



③:创建并授权:

mysql> grant all privileges on *.* to 'zhangsan' @'%' identified by '123456';



④:对用户某一个数据库授权外部访问

mysql> grant all PRIVILEGES on fruit.* to zhangsan@'123.123.123.123' identified by '123456';


(上面的语句表示将 fruit数据库的所有权限授权给 zhangsan 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 zhangsan 用户的密码为 123456 。)


-----------------------------------------------------------------
本机用户添加外网ip访问权限另一种方法,修改mysql数据库下的user表(以root用户为例):

mysql> use mysql;
mysql> update user set host = ‘%’ where user = ‘root’;