远程连接mysql 授权方法详解

来源:互联网 发布:网络装修 知乎 编辑:程序博客网 时间:2024/06/10 09:31

原帖:http://www.jb51.net/article/31902.htm

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; 
0 0
原创粉丝点击