您的位置:首页 > 数据库 > MySQL

远程连接mysql 授权方法详解

2015-02-06 16:03 603 查看
原帖:/article/1241606.html

MYSQL的安装很简单,单机安装基本可以用‘绿色版’形容,解压,配置文件,创建服务,OK,本地连接没有问题,接下来就是配置远程连接,MYSQL没有ORACLE监听那种概念,要做一些简单的设置。

1.首先保证3360端口有效

关闭防火墙,查看端口号等

2.确定那个用户需要远程访问

有2种方法,远程访问,当然访问可以做一些限制,如果不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,方法如下

方法一:

在安装mysql的机器上运行:

1: 创建user用户

CREATE USER demo IDENTIFIED BY “123456”
2:授权
mysql>GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限,也可以如下操作
<pre code_snippet_id="599368" snippet_file_name="blog_20150206_2_3271177" name="code" class="sql">mysql<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">>GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION; </span></span>



3.修改生效
mysql>FLUSH PRIVILEGES
//修改生效


如果对ROOT授权,执行下面的命令。操作如下:

[root@cicro108 mysql]# bin/mysql -u root -p -h 127.0.0.1 -A cws3

Enter password:

Welcome to the MySQL monitor. Commands end with or /g.

Your MySQL connection id is 1863 to server version: 4.1.20-standard

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "mysql" ;

Query OK, 0 rows affected (0.17 sec)

发现这样更改权限以后,远程仍然不能连接,但是用下面的操作就可以了。

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

Query OK, 0 rows affected (0.17 sec)

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

方法二:

MySQL 1130错误解决方法:

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

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

说明所连接的用户帐号没有远程连接的权限,只能在本机(localhost)登录。

需更改 MySQL 数据库里的 user表里的 host项

把localhost改称%

具体步骤:登陆到MySQL

首先 use MySQL;

按照别人提供的方式update的时候,出现错误。

MySQL> update user set host='%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后查看了下数据库的host信息如下:

MySQL> select host from user where user = 'root';
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
host已经有了%这个值,所以直接运行命令:

MySQL>flush privileges;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: