mysql默认不能远程访问。
what!怎么可能!大家满口赞誉的东东,居然默认是个单机版,太玩具了吧。
其实,这只是对刚安装好的mysql来说的。刚装好的mysql,只有一个账号,就是管理员root,限定只能本机访问,好像也没啥不妥吧(反而更谨慎?)。
那么,如何才能开启远程访问呢,比如同一个局域网里面,允许其他机器访问它的数据库?
假设新装好的MYSQL,其初始账号情况如下:
+------+-----------+| user | host | +------+-----------+| root | 127.0.0.1 | | root | ::1 || root | localhost | +------+-----------+3 rows in set (0.14 sec)
网上搜了搜,有大神说可以将host改为’%’,这样就能被所有机器访问了。
可是,我现在遇到的情况是,有个第三方开发的系统,我们要从它的数据库里读数据。它的账号默认就是像以上,只能本地访问。难道我要对它的账号进行修改?看起来好像改动很小,应该也没啥风险,但是,总觉得不妥。
然而网上基本上所有的教程都是这种将host改成’%’的论调,天下文章一大抄。
我认为思路应该是这样的:
1、创建一个用户
2、赋予这个用户允许远程访问
经测试,成功了。步骤如下:
1、创建用户
create user 'test' identified by '123456'
这样创建出来的用户,其host就是’%’
如果要限定只能某个IP访问,可以酱紫:
create user 'test'@'192.168.0.164' identified by '123456'
好,至此创建用户,允许远程访问都搞定了
2、但是还要赋权限
grant all on db1.* to test@'%';
这里将数据库db1的所有权限都赋给了test。
如此,可用test访问那个mysql数据库矣。
3、清空密码
那个第三方系统,其mysql账户root,密码为空。那在连接串里怎样写呢?事实证明,有三种方式可以写:
server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1
以上都可以。如果在命令行登录,可以这样:
mysql -u test(回车)
即可登录。
那么怎么清空密码呢?可以酱紫:
set password for test@'%'=password('');
感叹mysql的过人之处。看上去,其账号其实是 账号名称 + host 来决定的,相当于一个复合主键。这种思路很新奇。也很实用。
mysql默认不能远程访问。
what!怎么可能!大家满口赞誉的东东,居然默认是个单机版,太玩具了吧。
其实,这只是对刚安装好的mysql来说的。刚装好的mysql,只有一个账号,就是管理员root,限定只能本机访问,好像也没啥不妥吧(反而更谨慎?)。
那么,如何才能开启远程访问呢,比如同一个局域网里面,允许其他机器访问它的数据库?
假设新装好的MYSQL,其初始账号情况如下:
+------+-----------+| user | host | +------+-----------+| root | 127.0.0.1 | | root | ::1 || root | localhost | +------+-----------+3 rows in set (0.14 sec)
网上搜了搜,有大神说可以将host改为’%’,这样就能被所有机器访问了。
可是,我现在遇到的情况是,有个第三方开发的系统,我们要从它的数据库里读数据。它的账号默认就是像以上,只能本地访问。难道我要对它的账号进行修改?看起来好像改动很小,应该也没啥风险,但是,总觉得不妥。
然而网上基本上所有的教程都是这种将host改成’%’的论调,天下文章一大抄。
我认为思路应该是这样的:
1、创建一个用户
2、赋予这个用户允许远程访问
经测试,成功了。步骤如下:
1、创建用户
create user 'test' identified by '123456'
这样创建出来的用户,其host就是’%’
如果要限定只能某个IP访问,可以酱紫:
create user 'test'@'192.168.0.164' identified by '123456'
好,至此创建用户,允许远程访问都搞定了
2、但是还要赋权限
grant all on db1.* to test@'%';
这里将数据库db1的所有权限都赋给了test。
如此,可用test访问那个mysql数据库矣。
3、清空密码
那个第三方系统,其mysql账户root,密码为空。那在连接串里怎样写呢?事实证明,有三种方式可以写:
server=192.168.128.130; user id=test; password=;database=db1server=192.168.128.130; user id=test; password='';database=db1server=192.168.128.130; user id=test; database=db1
以上都可以。如果在命令行登录,可以这样:
mysql -u test(回车)
即可登录。
那么怎么清空密码呢?可以酱紫:
set password for test@'%'=password('');
感叹mysql的过人之处。看上去,其账号其实是 账号名称 + host 来决定的,相当于一个复合主键。这种思路很新奇。也很实用。
以上就是mysql允许远程访问的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具