Mysql 远程登录

修改 my.cnf

ubuntu系统 my.cnf 在 /etc/mysql/ 目录下

注释bind-address = 127.0.0.1 或者 改为你希望的ip, 0.0.0.0 表示所有ip

如果不注释 bind-address 会出现
ERROR 2003 (HY000) Can’t connect to MySQL server on ‘’ (61)
这个错误

随后有两种方法可以进行授权

方法1 Mysql 远程登录授权 GRANT

允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:

在本机先使用root用户登录mysql:
mysql -u root -p”youpassword”
进行授权操作:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
# *.* 表示 数据库.数据表名 ,*.* 表示所有数据库的数据表
# 'root'@'%' 无空格 '%'表示所有ip均可,当然也可以自行设置ip
#IDENTIFIED BY后跟的是密码,可设为空。
FLUSH privileges; #更新
exit #退出mysql数据库:

允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下:

在本机先使用root用户登录mysql:
mysql -u root -p”youpassword”

#进行授权操作:
GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
#重载授权表:
FLUSH PRIVILEGES;
#退出mysql数据库:
exit

允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下:

在本机先使用root用户登录mysql:
mysql -u root -p”youpassword”

#进行授权操作:
GRANT selectinsertupdatedelete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword";
#重载授权表:
FLUSH PRIVILEGES;
#退出mysql数据库:
exit

删除用户授权,需要使用REVOKE命令,具体命令格式为:

REVOKE privileges ON 数据库[.表名] FROM user-name;

具体实例,先在本机登录mysql:
mysql -u root -p”youpassword”

#进行授权操作:
GRANT select,insert,update,delete ON Database_name TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";
#再进行删除授权操作:
REVOKE all on TEST-DB from test-user;
#****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
#最后从用户表内清除用户:
DELETE FROM user WHERE user="test-user";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit

方法2 Mysql 远程登录 修改数据表

具体实例,先在本机登录mysql:
mysql -u root -p”youpassword”

use mysql; #使用系统数据库
select user, host from user; # user 表具有所有用户的信息
# 如果host为localhost 表示可以本地访问,如果 host为 % 则可以随意ip访问。
# 使用update 修改权限 权限 update user set host = '%' where user = 'root';
flush privileges;

你可能感兴趣的:(mysql,server,远程登录,ERROR-2003)