mysql 查询出来的都是老方块 mysql为什么

c#读取mysql数据库,为什么读出来的数据都是乱码,而数据库里的企数据_百度知道laokaddk 的BLOG
用户名:laokaddk
文章数:983
评论数:103
访问量:2234452
注册日期:
阅读量:5863
阅读量:12276
阅读量:343494
阅读量:1044395
51CTO推荐博文
连接MySQL数据库时常见故障问题的分析与解决初学的mysql网友好象经常会碰到mysql无法连接的错误。特开贴收集这样问题的现象和原因。 先自己扔块砖头出来。 归纳如下:故障现象 : 无法连接 mysql =============================================================================错误信息1 :ERROR ): Access denied for user 'usera'@'localhost' (using password:YES)错误信息2 :ERROR ): Access denied for user 'usera'@'localhost' (using password:NO) 下面,首先分析说明这两种错误信息分别在什么情况下会出现:描述:使用mysql连接命令或连接工具,对远程数据库进行连接时,可能会出现以上两种错误信息,下面以命令的连接方式进行说明。当使用mysql里连接命令时,若带-p参数且指明密码,或带-p参数不指明密码,但在下一步输入密码时有字符串输入,则返回的是“错误信息1”,若不带-p参数,或带-p参数但在下一步输入密码时,不输入任何字符,则返回的是“错误信息2”,如下所示:C:\Documents and Settings\Administrator&mysql -uroot -h 192.168.8.88 -proot
//带-p参数,并指明密码ERROR ): Access denied for user
(using password: YES)C:\Documents and Settings\Administrator&mysql -uroot -h 192.168.8.88 -p
//带-p参数,在下一步进行密码输入Enter password:
//有字符串输入ERROR ): Access denied for user
(using password: YES)C:\Documents and Settings\Administrator&mysql -uroot -h 192.168.8.88
//不带-p参数ERROR ): Access denied for user
(using password: NO)C:\Documents and Settings\Administrator&mysql -uroot -h 192.168.8.88 -p
//带-p参数,在下一步进行密码输入Enter password:
//无字符串输入ERROR ): Access denied for user
(using password: NO)上面的对比可总结出一点,使用mysql命令进行登录时,若有密码输入行为并输入了字符,则验证出错后,则返回的错误提示中,对于 (using password: ?)中?的关键字,则返回的是YES,若没有密码输入行为,或无密码字符输入,则返回的是NO。除上面的实验对比,还进行了如下的登录对比操作,并记录了他们所返回错误提示类型,对上面的总结进行验证:1.使用存在的用户,不输入密码ERROR ): Access denied for user
(using password: NO)2.使用不存在的用户,不输入密码ERROR ): Access denied for user
(using password: NO)3.使用存在的用户,且输入密码正确ERROR ): Access denied for user
(using password: YES)4.使用存在的用户,但输入密码不正确ERROR ): Access denied for user
(using password: YES)5.使用不存在的用户,但输入数据库中存在的某一个密码ERROR ): Access denied for user
(using password: YES)6.使用不存在的用户,且输入数据库中不存在的一个密码ERROR ): Access denied for user
(using password: YES)总结:对于 ERROR ): Access denied for user
此类错误返回时, (using password: ?)中?的关键字是YES还是NO,关键不在于用户是否存在,密码是否正确,它的结果取决于登录时,用户对于密码有没有字符串的输入,如果没有,MySQL数据库验证后,若出错返回此类信息,则应是 (using password: NO),若用户对密码有字符串的输入,返回的则是(using password: YES)。下面分析这类 ERROR ): Access denied for user 错误出现的原因:原因1 : 客户端远程访问的用户账号并未创建检查 :以管理员ROOT登录后,show grants for ‘; 或者 select user from mysql. 确认用户账号是否存在。mysql& show grants for ;ERROR ): There is no such grant defined for user 'jtsec' on host '192.168.8.123'mysql& 返回信息:ERROR ): There is no such grant defined for user 'jtsec' on host '192.168.8.123'说明,没有jtsec用户,或者没有对jtsec用户进行在192.168.8.123远程访问的授权。mysql& select user,host from mysql.+-------+---------------+| user | host
|+-------+---------------+| root | localhost
| +-------+---------------+1 rows in set (0.00 sec)mysql& 关于user记录数只有一条,是root,并没有jtsec相关的记录,说明没有数据库中没有jtsec这个帐号。处理 :创建用户账号。mysql& grant all privileges on *.* to
identified by 'jtsec'Query OK, 0 rows affected (0.00 sec)mysql&Query OK, 0 rows affected (0.00 sec)mysql& show grants for ;+---------------------------------------------------------------------------------------------------------------------------------------------+| Grants for
|+---------------------------------------------------------------------------------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO
IDENTIFIED BY PASSWORD '*0B4AB716B6BE11FF3016D8EEAA217' WITH GRANT OPTION | +---------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)mysql& select user,host from mysql.+-------+---------------+| user | host
|+-------+---------------+| jtsec | 192.168.8.157 | | root | localhost
| +-------+---------------+2 rows in set (0.00 sec)mysql& 原因2 : 用户账号存在,但未对其所在的客户端的IP进行远程访问授权允许检查 :以管理员ROOT登录后 show grants for ;mysql& show grants for ;ERROR ): There is no such grant defined for user 'root' on host '192.168.8.123'mysql& 返回信息:ERROR ): There is no such grant defined for user 'root' on host '192.168.8.123'说明,没有root用户(因为是MySQL超级用户所以排除此种可能),或者没有对root用户进行在192.168.8.123远程访问的授权。我们来对比一下看,root用户本地访问的权限,则可查出:mysql& show grants for ;+----------------------------------------------------------------------------------------------------------------------------------------+| Grants for
|+----------------------------------------------------------------------------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO
IDENTIFIED BY PASSWORD '*81F5E21ECD4A731AEBFB6AF209E1B' WITH GRANT OPTION |+----------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)或者直接查询mysql的user用户表select user,host from mysql.,其中记录了每一个用户的权限信息mysql& select user,host from mysql.+-------+---------------+| user | host
|+-------+---------------+| root | localhost
| +-------+---------------+1 rows in set (0.00 sec)mysql& 关于user值为root的记录数只有一条,且host值为localhost,说明root用户只能在本地访问数据库。处理 :进行root用户的远程访问授权,可以授权到指定的客户端IP,也可以授权为所有IP都可访问(host值为%)。授权为所有IP都使用用户root,密码root,来远程访问数据库mysql& GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'root' WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)mysql&Query OK, 0 rows affected (0.00 sec)再次进行授权的查询mysql& show grants for ;+--------------------------------------------------------------------------------------------------------------------------------+| Grants for
|+--------------------------------------------------------------------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO
IDENTIFIED BY PASSWORD '*81F5E21ECD4A731AEBFB6AF209E1B' WITH GRANT OPTION |+--------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)再次查询授权表记录mysql& select user,host,password from mysql.+-------+---------------+-------------------------------------------+| user | host
| password
|+-------+---------------+-------------------------------------------+| root | localhost
| *81F5E21ECD4A731AEBFB6AF209E1B | | root | %
| *81F5E21ECD4A731AEBFB6AF209E1B | +-------+---------------+-------------------------------------------+2 rows in set (0.00 sec)mysql& 原因3 : 用户账号授权访问的密码不正确检查 :以管理员ROOT登录后, select user,host,password from mysql.mysql& select user,host,password from mysql.+-------+---------------+-------------------------------------------+| user | host
| password
|+-------+---------------+-------------------------------------------+| root | localhost
| *81F5E21ECD4A731AEBFB6AF209E1B | | root | %
| *81F5E21ECD4A731AEBFB6AF209E1B | | jtsec | 192.168.8.123 |
|| jtsec | 192.168.8.123 | *0B4AB716B6BE11FF3016D8EEAA217 | +-------+---------------+-------------------------------------------+4 rows in set (0.00 sec)mysql& 根据查询结果可以看出来,root账户的本地访问和远程访问密码一样。而jtse账户在192.168.8.123这个IP上,远程访问数据库的密码有两个,其中一个为空(第三条记录)。也就是说在IP为192.168.8.123的客户机上,使用jtsec这个账户远程访问数据库,合法的密码有两个可以选择:一个是不输入密码(密码为空),另一个是*0B4AB716B6BE11FF3016D8EEAA217(经过加密的),其余的输入,都是错的。处理 :使用正确的访问密码进行访问即可。===================================================================================错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.8.88' (10065)原因 :MySQL服务器上防火墙的阻断检查 :在Linux下查看iptables规则,看是否未对MySQL数据库默认通信端口3306进行放行处理 :添加相应的放行规则自己在
/etc/sysconfig/iptables 里加了一下代码:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT或尝试关掉防火墙
chkconfig ip6tables off
chkconfig iptables off问题描述: C:\Documents and Settings\Administrator&mysql -uroot -h 192.168.8.88 -prootERROR 2003 (HY000): Can't connect to MySQL server on '192.168.8.88' (10065)C:\Documents and Settings\Administrator&===================================================================================错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)原因 : mysqld数据库服务没有启动。检查 :在windows 的任务管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。确认服务已经启动。处理 :启动mysqld 服务===================================================================================错误信息 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server 原因 : mysql服务器没有赋予此客户端远程连接的权限。 检查 :在mysql服务器本地查询mysql库里user表对应的host是否包含客户端机器的IP(%为不限制IP允许远程连接)。 处理 :修改mysql库下的user表:update user set host = '%' where user ='XXX';===================================================================================错误信息 :ERROR ): Access denied for user 'usera'@'localhost' (using password:NO)原因 : 用户账号并未创建,远程登录时登录指令未直接包含密码项检查 :以管理员ROOT登录后,show grants for 'usera'@'localhost'; 或者 select user from mysql. 确认用户账号是否存在。处理 :创建用户账号。===================================================================================错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061) 原因 : mysqld 客户端与服务端端口不一致。 检查 :在my.ini 设置下服务端口 这种情况特别是客户都与远程服务器端口不一致 很容易出现的问题处理 :启动mysqld 服务 ===================================================================================错误信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111) 原因 : mysqld的mysql.sock没在相应的位置。处理 : 1.先查看/etc/rc.d/init.d/mysql status 看看是否启动 2.改权限 chown -R mysql:msyql /var/lib/mysql 3.修改/f (注意:先停数据库) [mysqld] datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/usr/local/mysql [client] socker=/var/lib/mysql/mysql.sock 4.启动数据库===================================================================================常用检查步骤。1. PING hostname 或 PING 189.xx.xx.xx 确认服务器IP层通信没有问题。如果PING通则继续(2),PING不通则找网络方面专家协助。2. TELNET hostname 3306 确认服务器TCP层通信没有问题。(你的端口号可能不是3306),如通则继续,如不通,请检查mysqld 是否已经在运行,防火墙屏蔽了端口。3. 检查用户权限, show grants ... 或 select user,host,password from mysql.===================================================================================故障现象 : 本地无法 mysql -u root -p 用原来的密码登录,但可以用无密码,远程必须用原密码登录 错误信息 :ERROR ): Access denied for user 'root'@'localhost' (using password: YES)原因 : 未知,不知道是否mysql的新密码控制策略检查 :mysql -u root 密码空登录无问,远程用navica mysql无密码有问题,有密码无问题处理 :暂时先把本地登录的密码去掉版本环境:mysql Ver 14.14 Distrib 5.1.56, for debian-linux-gnu (i486) using readline 6.2问题分析(lioncode):Start --&MySQL数据库的用户信息均保存在mysql.user表中,其中包括用户的用户名,密码,授权的范围(可授权登录的IP、可进行的数据库操作的类型)等信息,有必要查看一下该表中对于root用户的相关记录项,对于上述现象对应的查询结果可能是这样的:出问题前该表中的数据如果是这样的:mysql& select user,host,password from mysql.+-------+---------------+-------------------------------------------+| user | host
| password
|+-------+---------------+-------------------------------------------+| root | localhost
| *81F5E21ECD4A731AEBFB6AF209E1B || root | %
| *81F5E21ECD4A731AEBFB6AF209E1B |+-------+---------------+-------------------------------------------+2 rows in set (0.00 sec)mysql& 出问题后该表中的数据可能是这样的:mysql& select user,host,password from mysql.+-------+---------------+-------------------------------------------+| user | host
| password
|+-------+---------------+-------------------------------------------+| root | localhost
|| root | %
| *81F5E21ECD4A731AEBFB6AF209E1B | +-------+---------------+-------------------------------------------+2 rows in set (0.00 sec)mysql& 第一条数据,解释了,为什么在本地无法用原来的密码登录,但却可以用无密码登录成功。原本,本地登录的密码和远程登录的密码是一样的,都为*81F5E21ECD4A731AEBFB6AF209E1B (加密后的),但是,由于某种原因,本地登录的密码被清空了,所以用原来的密码就不能登录了。第二条数据,解释了,为什么远程必须用原密码登录。root用户本地登录密码的设定和root用户远程登录密码的设定,分别是两条不同的数据,所以本地登录的密码被改,并不影响远程登录的密码。&-- End==================================================================================故障现象 : 无法连接 mysql windows错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061) 原因 : 同时开启大量的tcp端口和而仅有一小部分短命端口时,当他们处于time_wait时期,mysql可能会跑错端口检查 :在windows 默认会开启5000个临时端口供调用,而他们的生命仅仅是120s,意思是在关闭端口的时候会有120秒的延时处理 :减少不不必要的tcp端口。修改注册表==================================================================================求助,不知道大家有一样的情况没有?Lost connectiion to MySQL server during query.按照网上说的方法仍没解决,楼主是否碰见过? ==================================================================================Lost connection to MySQL server at 'reading initial communication packet', system error: 0什么问题??Author: lioncodeCMP: JTSEC-RDDate:
18:14Project: jtsec_one-way_dbsyncVersion: v1.0.0
了这篇文章
类别:┆阅读(0)┆评论(0)
09:46:26 09:50:40<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&&& && &&&& && &&其它登录: &&
您的位置:>
& mysql根据列查询、查询结果升序、降序
mysql根据列查询、查询结果升序、降序
时间: 09:35:26 & 编辑:一切随缘 & 文章来源:php教程网 已阅读:2390 次
广告投放:
WEB开发网:
mysql根据列查询、查询结果升序、降序
你可能已经注意到前面的例子中结果行没有以特定的顺序显示。然而,当行按某种方式排序时,检查查询输出通常更容易。为了排序结果,使用ORDER
&&& &&& 这里是动物生日,按日期排序:
&&& &&& mysql&
SELECT name, birth FROM pet ORDER BY
+----------+------------+
&&& &&& | name&&&& | birth&&&&& |
+----------+------------+
&&& &&& | Buffy&&& |
Bowser&& |
&&& &&& | Fang&&&& |
Fluffy&& |
&&& &&& | Claws&&& |
Slim&&&& |
&&& &&& | Whistler |
Chirpy&& |
&&& &&& | Puffball |
+----------+------------+
在字符类型列上,与所有其他比较操作类似,分类功能正常情况下是以区分大小写的方式执行的。这意味着,对于等同但大小写不同的列,并未定义其顺序。对于某一列,可以使用BINARY强制执行区分大小写的分类功能,如:ORDER
BY BINARY col_name.
默认排序是升序,最小的值在第一。要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:
mysql& SELECT name, birth FROM pet ORDER BY birth DESC;
+----------+------------+
&&& &&& | name&&&& | birth&&&&& |
+----------+------------+
&&& &&& | Puffball |
Chirpy&& |
&&& &&& | Whistler |
Slim&&&& |
&&& &&& | Claws&&& |
Fluffy&& |
&&& &&& | Fang&&&& |
Bowser&& |
&&& &&& | Buffy&&& |
+----------+------------+
可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序。例如,按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面),使用下列查询:
&&& mysql& SELECT name, species, birth FROM pet
&&& &&& &&& -& ORDER BY
species, birth DESC;
&&& &&& +----------+---------+------------+
name&&&& | species | birth&&&&& |
+----------+---------+------------+
&&& &&& | Chirpy&& | bird&&& |
&&& &&& | Whistler | bird&&& |
&&& &&& | Claws&&& | cat&&&&
&&& &&& | Fluffy&& | cat&&&& |
Fang&&&& | dog&&&& |
&&& &&& | Bowser&& | dog&&&& |
&&& &&& | Buffy&&& | dog&&&& |
&&& &&& | Puffball | hamster
&&& &&& | Slim&&&& | snake&& |
+----------+---------+------------+
注意DESC关键字仅适用于在它前面的列名(birth);不影响species列的排序顺序。
上一篇:下一篇:
本文地址:/content/article/mysql/24224.html(转载请保留)
相关关键词搜索:mysql,查询,查询结,降序
你可能喜欢
MySQL簇的快速测试设置,为了帮助你熟悉基本概念,我们将介绍功能性MySQL簇的最简单的可能配置。然后,按照本章相关部分提供的信息,你应能设计自己所需的配置。首先,应以系统根用户...
mysql数据库子分区教程,子分区是分区表中每个分区的再次分割。例如,考虑下面的CREATE TABLE 语句:表ts 有3个RANGE分区。这3个分区中的每一个分区——p0, p...
mysql之thread cache讲解,最近突然对MySQL的连接非常感兴趣,从status根据thread关键字可以查出如下是个状态,以上是这4个状态的含义,thread_co...
mysql单用户模式讲解,采用单用户模式,数据库管理员能够将对数据库系统的访问限制在1个MySQL服务器(SQL节点)。进入单用户模式时,与所有其他MySQL服务器的所有连接均将恰...
* 以上用户言论只代表其个人观点,不代表网站的观点或立场
纯JS代码小游戏
热门关键词
(已有3136人阅读本文)
(已有625人阅读本文)
(已有504人阅读本文)
(已有570人阅读本文)
(已有724人阅读本文)
(已有753人阅读本文)
(已有2021人阅读本文)
(已有1343人阅读本文)
(已有2127人阅读本文)
(已有1065人阅读本文)
WEB技术QQ交流群: 站长Q号:
版权所有者:WEB开发网 地址:云南省文山州砚山县盘龙乡
滇ICP备号-1
特别声明:本站内容仅供参考,不作为设计及确切依据!想了解更多,可立即进入查看: 5453|回复: 3
我的firefox浏览器页面的小方块不显示文字是怎么回事
认证徽章论坛徽章:5
Screenshot-1.png (121.46 KB, 下载次数: 1)
17:00 上传
大家帮我看看我的firefox浏览器页面的小方块,他是命令按钮,可是上面不显示文字是怎么回事
认证徽章论坛徽章:488
浏览器中设一下语言为English即可。。。
认证徽章论坛徽章:5
嗯,好了,谢谢
认证徽章论坛徽章:5
guoyJoe 发表于
浏览器中设一下语言为English即可。。。
嗯,好了 谢谢
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号

我要回帖

更多关于 mysql把查询出来加十 的文章

 

随机推荐