Archive三月 2022

一句SQL实现MYSQL的递归查询

众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。

创建表格

插入测试数据

查询语句

最后的结果如下:

出处:https://www.itdaan.com/blog/2015/07/31/62738242d654aff87473e8f343c02885.html

win11下安装mysql8.0.28

安装包下载地址:https://dev.mysql.com/downloads/mysql/,选择mysql-8.0.28-winx64.zip版,点“Download”按钮,如图01:
图01

选择不登录账号下载,如图02:
图02

mysql-8.0.28-winx64.zip文件大约211M,如图03:
图03

下载完后,我们将 zip 包解压到 C:\WebServ\mysql-8.0.28-winx64 下,如图04:
图04

在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\WebServ\mysql-8.0.28-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\www\mysql\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

以管理员身份打开 cmd 命令行工具,切换目录:cd C:\WebServ\mysql-8.0.28-winx64\bin,如图05:
图05

初始化数据库:mysqld –initialize –console,如图06:
图06

执行完成后,会输出 root 用户的初始默认密码,如图07:
图07

_0T&EH<Pdaay是初始密码,下面登录要用到,初始密码可以在登录后修改。

输入以下安装命令:mysqld install,按回车后提示安装成功,如图08:
图08

输入net start mysql 来启动mysql服务,如图09:
图09

当 MySQL 服务已经运行时,我们可以通过输入以下格式的命令登录:mysql -h 主机名 -u 用户名 -p

参数说明:
-h : 指定客户端所要登录的 MySQL 主机名,登录本机(localhost 或 127.0.0.1)该参数可以省略。
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录,如果所要登录的用户名密码为空,可以忽略此选项。

如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:mysql -u root -p

按回车确认,如果安装正确且 MySQL 正在运行,会得到以下响应:Enter password:

若密码存在,输入密码登录,不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor… 的提示语。

然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入,输入 exit 或 quit 退出登录。

修改管理员密码
mysql -u root -p
提示输入密码,先将“_0T&EH<Pdaay”复制到剪贴板,再鼠标点击命令行窗口Enter password:后面空白处,光标会闪烁,鼠标右键点击这里,密码会粘贴过来,按回车,然后输入下面命令修改root账号密码为rootroot:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘rootroot’;
图10

win7+apache2.4+php7.4环境下socket连接失败解决办法

最近在筹划一个使用到局域网web服务的项目,想通过php的socket通信实现不同端数据的实时传递。

服务器采用的是:Win7+Apache2.4+php7.4,apache和php均已成功启动。

在命令行模式运行一个socket服务时遇到提示:Fatal error: Call to undefined function socket_create() in d:\www\www\study\socket\server.php on line 13

百度搜索“Fatal error: Call to undefined function socket_create()”,根据网友反馈修改了php.ini的配置,将“;extension=sockets”这一行的“;”去掉,重启php服务后问题解决。

Win7下Apache服务本机可通过ip访问,局域网其它设备不能访问的解决办法

最近在筹划一个使用到局域网web服务的项目,在搭建开发环境时遇到了一个问题,描述如下:
Win7台式机,通过有线连接到无线路由器;
台式机的ip地址设定为固定ip(192.168.1.100);
台式机安装了Apache2.4服务,并成功启动服务;
在台式机本地浏览器输入192.168.1.100可以访问预设的web页面;
将一部手机的WLAN设置为同一无线网络,打开手机浏览器,输入192.168.1.100,无法访问到台式机上预设的web页面。

解决办法:
为台式机的防火墙,添加一条入站规则,具体操作如下:
点击台式机“开始->控制面板->系统和安全->Windows 防火墙->高级设置->入站规则”,点击新建规则,如下图:

弹出窗口中默认规则类型为“程序”,点击“下一步”:

选“此程序路径”,点“浏览”:

在Appache的安装目录下找到httpd服务程序httpd.exe,点打开:

点“下一步”:

选“允许连接”,点“下一步”:

配置文件选择如下图所示,点“下一步”:

规则名称设置为“Apache HTTP Server”,点“完成”:

试一下手机浏览 http://192.168.1.100/ 页面,可以访问!

问题解决!