MySQL数据库远程访问权限如何打开

在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户没有远程访问的权限。

下面介绍两种方法,解决这一问题。

1、改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

?
mysql -u root -p 
mysql>use mysql; 
mysql>update user set host = '%' where user = 'root';
mysql>select user,host from user;
这时会看到mysql多了一条 root %:
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| root | 127.0.0.1 |
| root | ::1       |
| root | mcu       |
+------+-----------+




2、授权法

在安装mysql的机器上运行:

1、d:\mysql\bin\>mysql -h localhost -u root

//这样应该可以进入MySQL服务器

2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

//赋予任何主机访问数据的权限

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

mysql>GRANT ALL PRIVILEGES ON *.* TO'myuser'@'%' IDENTIFIED BY'mypassword' WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

3、mysql>FLUSH PRIVILEGES

//修改生效

4、mysql>EXIT

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


PS:

如果无法从localhost上登录主机,并提示Access denied for user 'root'@'localhost' (using password:YES)。

可以通过以下方式进行登录:

方法1:

  1. 打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)
  2. 重启MySQL服务。
  3. 通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。(WIN7默认安装,BIN目录为:C:\Program Files\MySQL\MySQL Server 5.6\bin)
  4. 执行“use mysql;”,使用mysql数据库。
  5. 执行“update user set password=PASSWORD("123456") where user='root';”(修改root的密码)
  6. 打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
  7. 重启MySQL服务。
  8. 在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。
方法2:

1. service mariadb stop

2. mysqld_safe --skip-grant-table

        3. 再开启一个会话, 使用mysql 登录mysql.

        4.执行update user set password=PASSWORD("123456") where user='root'; 修改密码并执行上述方法打开远程访问权限




猜你喜欢

转载自blog.csdn.net/johnhill_/article/details/70214727