分类 SQL 下的文章

Mssql登录提示:用户sa登录失败 错误:18456

当出现这个提示的时候,说明还没配置好。

一,打开数据库,以Windows身份验证的方式登录数据库,此时不需要账号和密码的

二,找到:安全性 → 登录名 → sa,双击sa,默认打开常规选项页,然后重置一个sa的登录密码
修改sa密码.png

三,切换到“状态”选项卡,确保“授予”“启用”两项被选中

四,在服务器名上点击右键 → 属性 → 安全性,选中 SQL Server 和 Windows 身份验证模式,然后确定
修改sa身份验证.png

五,系统会提示重启服务。在服务器名上点击右键,选择重新启动,然后就可以用sa正常登录了。

阿里云Linux安装Mysql后,默认是不支持远程链接的

阿里云Linux服务器购买后,首选都是安装nginx+mysql+php,如果使用lnmp这些成熟的套件的话,默认会安装上phpmyadmin。
有时候会用Navicat这种数据库客户端管理软件,需要做2个操作:

1,确保本实例服务器安全组在公网入方向开放了3306端口
A,端口范围-1/-1,授权对象0.0.0.0/0或你的电脑的公网ip
B,端口范围3306/3306,授权对象0.0.0.0/0或你的电脑的公网ip

2,找到mysql数据库,user表,User字段为root且Host字段为localhost行,把localhost改成%

然后再远程链接都不会出现“is not allowed to connect to this mysql server”这种提示了。

MySQL递归查询树形结构的栏目

一般的栏目都是树形结构,在表结构通常会采用id、parent_id这种设计方案。比如帝国CMS的栏目也是这种方案。

查询帝国CMS一个栏目下所有的下级栏目,案例代码:

SELECT t1.classid,t1.classname,t2.classid,t2.bclassid,t2.classname,t3.classid,t3.bclassid,t3.classname,t4.classid,t4.bclassid,t4.classname
FROM phome_enewsclass t1
LEFT JOIN phome_enewsclass t2 ON t1.classid = t2.bclassid
LEFT JOIN phome_enewsclass t3 ON t2.classid = t3.bclassid
LEFT JOIN phome_enewsclass t4 ON t3.classid = t4.bclassid
WHERE t1.classid = '4968';

上述案例中,层级为四级。

解决Mysql同一个表不能同时进行update和select操作的问题

我要更改帝国CMS栏目ID=583的下级栏目模板ID,用下面SQL语句,没毛病:

UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid = 583

我要更改帝国CMS栏目ID=583的下下级栏目模板ID,用下面SQL语句:

UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid in (SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)

执行报错:#1093 - You can't specify target table 'phome_enewsclass' for update in FROM clause,意思是在同一张表上,你不能先select了再执行update操作。

改用下面SQL语句,可以修改指定栏目下的第三级栏目的模板ID:

UPDATE `phome_enewsclass` AS A INNER JOIN (SELECT classid FROM `phome_enewsclass` WHERE bclassid in(SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)) AS B ON A.classid = B.classid SET A.listtempid = 2

Windows服务器下Mysql如何开启远程连接

服务器系统:Windows server 2008
问题:登录到服务器里面,本地可以连接mysql,远程电脑通过Navicat之类的工具连接时报错1130,服务器端口是3388
判断:要么是windows的防火墙阻止了3388端口,要么是mysql没有开放权限。
检查:window服务器的防火墙已经关闭,那么只能是mysql本身没有开放权限了。
操作:
1,Windows服务器中点击“开始”菜单,“运行”,输入“cmd”,进入DOS控制台。
2,通过cd命令,进入Mysql安装目录下的bin目录







阅读剩余部分