远程连接mysql 授权方法详解

今在服务器上 有mysql 数据库,远程访问,不想公布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
//赋予任何主机访问数据的权限,也可以如下操作
GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

3、


代码如下:

mysql>FLUSH PRIVILEGES
//修改生效

4、


代码如下:

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

引用
另外,当用客户端连接 mysql 时,发现无法连接,看来需要对用户进行重新授权。操作如下:
[root@cicro108 mysql]# bin/mysql -uroot -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;

再用MySQL administrator连接...成功!!

(0)

相关推荐

  • 配置mysql允许远程连接的方法

    vim /etc/my.cnf注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1保存退出.mysql -uroot -p123456 为需要远程登录的用户赋予权限: 复制代码 代码如下: mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";mysql> flush privileges; 远程登录命令

  • MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)

    最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦. 远程连接mysql是总是提示: 复制代码 代码如下: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 很明显这是连接初始化阶段就丢失了连接的错误. google半天大多是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句. 但是我的配置文件并没有配

  • mysql 远程连接数据库的方法集合

    1.改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 复制代码 代码如下: mysql -u root -pvmwaremysql>use mysql; mysql>update user set host =

  • Centos忘记mysql密码及允许远程连接的方法

    1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态.最安全的状态是到服务器的Console上面操作,并且拔掉网线. 2.修改MySQL的登录设置: vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-g

  • MySQL数据库设置远程访问权限方法小结

    MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码 代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码 代码如下: mysql>grant all privileges on *.* to 'root'

  • Centos7下无法远程连接mysql数据库的原因与解决

    前言 最近在工作中遇到一个问题,发现在Centos7系统下怎么也不能远程连接mysql,通过查找相关的资料,终于解决了,以下方法就是我在碰到远程连接不到Mysql数据库后试过的方法,最终也是解决掉了问题.所以总结一下分享出来,供同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧. 有两种原因 数据库没有授权 服务器防火墙没有开放3306端口 一.数据库没有授权 对于mysql数据库没有授权,只需要用一条命令就可以了. mysql>GRANT ALL PRIVILEGES O

  • MySQL数据库远程访问权限如何打开(两种方法)

    下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户没有远程访问的权限. 下面介绍两种方法,解决这一问题. 1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "

  • MySQL远程访问设置终极方法

    数据库对于服务端开发人员来说,几乎就是左膀右臂.几乎每一个服务端开发人员都要和数据库打交道.而MySQL又以其开源免费,小巧玲珑,简单易用,功能强大占据中国数据库使用份额的半壁江山.从去年接触到Vagrant以来,Vagrant以其方便易用深深吸引了D瓜哥.为了尽可能地和生产环境保持尽可能的一致性,减少不必要的问题的发生,Vagrant+Ubuntu+MySQL几乎是绝配. MySQL允许远程访问的设置 1.注释bind-address = 127.0.0.1. 复制代码 代码如下: >cd /

  • MySQL数据库远程连接开启方法

    第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码 代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL&g

  • Centos7使用yum安装MySQL及实现远程连接的方法

    Centos7使用yum安装MySQL以及如何实现远程连接,因为MySQL被Oracle收购,目前推荐使用mariadb数据库 步骤如下: 1)yum install mariadb 2) yum install mariadb-server 3) yum install mariadb-devel chmod -R 770 /var/lib/mysql systemctl restart mariadb.service 至此MySQL安装完成 初始化密码: 执行mysql命令,设置初始密码 S

随机推荐