==刚学习mysql的时候,知道DBMS分为两类:
①基于文件共享的dbms(access)
②基于客户机–服务器的DBMS(Mysql、Oracle),在使用客户端时需要安装服务端,数据也存储在服务端
既然mysql安装时直接安装在本机时,服务端也在本机上装着,我就考虑在机房找一台电脑当作服务器,自己电脑上装上SQLyog小海豚工具。远程连接一下数据库。
1、刚开始连接时,出现了以下错误:
错误代码1130
Host ‘***.***.***.***’is not allowed to connect to this MySQL server
2、查明错误原因:
原因是MySQL默认不支持远程连接,(那么phpMyAdmin为什么可以连接呢?那是因为phpMyadmin的环境是上传到服务器的,其本身访问数据库是相当于本机localhost访问的)
在创建mysql账户时,限制连接账户远程登录。也就是说,除了当前mysql所在的安装服务器外,其他的ip(主机)都是不允许访问的,即使你的用户名和密码是正确的。这时候就要修改用户的访问权限。
3、解决问题(指定主机来连接mysql)
3.1.通过命令行使用root用户连接到mysql服务器,并进入mysql数据库
输入:mysql -h localhost -u root -p
== 然后输入密码,然后照着下面的代码输就ok了==
mysql> use mysqlDatabase changed
3.2.使用grant语句进行授权
all privileges:表示所有数据库权限on *.*:表示在所有表,视图,函数等等,可以是具体的数据库下的某个表,某个视图。 如demoDB.testTable'root'@172.16.48.65:表示允许root用户从IP为172.16.48.65的主机连接mysql服务器。identified by 'admin':表示root用户从172.16.48.65远程连接的密码。with grant option:表示root从172.16.48.65主机连接后可以将权限再次使用grant语句将权限授予其他用户。
输入如下代码
mysql> grant all privileges on *.* to 'root'@172.16.48.65 identified by 'admin' with grant option ;Query OK, 0 rows affected (0.00 sec)
3.3.刷新权限
mysql> flush privileges ;Query OK, 0 rows affected (0.00 sec)
4、提升,让任何主机都能连接mysql
可以输入一下代码:
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
上述两种都能连接局域网内任何主机上的mysql了
把mysql部署在局域网的服务器上 远程连接mysql时报错误代码1130 Host ‘***.***.***.***’is not allowed to connect to this MySQL