如何解决Can
如何解决Can t connect to mysql server on localhost错误?
t connect to mysql server on localhost错误?
解决办法: 第一步 删除c:windows下面的 第二步 打开c:mysqlinwinmysqladmin.exe输入用户名和密码 第三步在dos下输入mysqld-nt-remove删除服务 在接着输入mysqld-nt-install 第四步输入mysql启动成功。 其它可参考的方法: 1.看看hosts文件中localhost是不是指向127.0.0.1 2.如果是没启动mysql服务,则可运行netstartmysql。 3.一些相关命令: mysqld-nt--install#启动Mysql mysql#运行Mysql mysql-hipAddress-uusername-p 或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。 Error:CantconnecttoMySQLserveronlocalhost(10061) Errno.:2003 错误编号:2003 问题分析: 无法连接到MySQL服务器,可能的情况为: 1、MySQL服务没有启动,一般是在异常的情况下MySQL无法启动导致的,比如无可用的磁盘空间,里MySQL的basedir路径设置错误等; 2、MySQL服务器资源紧张,导致无法连接。 解决方法: 1、如果是虚拟主机用户(购买的空间),则联系空间商检查MySQL是否正常启动,并确认MySQL的配置信息(是否为localhost); 2、如果是独立主机用户(拥有管理主机权限),则按下面步骤检查: 1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。 2)检查里的basedir(MySQL安装地址)和datadir(数据目录存放地址)等参数设置是否正确,然后重新启动下MySQL服务。 还有一种方法是将服务器的windows补丁。 微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。 有人可能会问,为什么9号出现的补丁,到现在才发现问题? 大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(个人这么认为)。 补丁卸载方法:登录服务器,进入控制面板---添加和删除程序--(勾选上方的“显示更新”) 在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。 卸载完成后程序服务器,一切正常! 至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决办法只有如此。 还有种情况下,可以这样解决 Discuz!info:CannotconnecttoMySQLserver Time:2007-11-136:25pm Error:CantconnecttoMySQLserveronlocalhost(10061) Errno.:2003 Similarerrorreporthasbeeddispatchedtoadministratorbefore. 正常情况下原因如下: 网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了. 解决方法(针对WIN系统): 1,首先到系统服务里面找到MYSQL服务并启动MYSQL服务. 2,到MYSQL安装目录找到文件,打开查找max_connections修改连接数为1000重启IIS与MYSQL服务. window下 命令行下输入: cdE:mysqlin mysqladmin-urootpassword密码 mysql-uroot-p Enterpassword:密码 便可以 找到了根本原因,在此凉一下: 导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用 mysqladminversion这样子不行了,必须这样子:mysqladmin-uroot-pversion,回车后按照提示要求输入 root密码即可成功运行命令。 第一种方法其实就是在不知道root密码的情况下的一种解决办法,那样子启动不用密码即可进mysql里面并进行root密码的修改,解决忘记了root密码的问题。 输入命令“mysqladmin-urootpassword的密码”作用是修改root用户的密码,这条命令能够不经提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。
mysql全文索引如何支持中文?
全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词。
这不,从MySQL5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效。
在使用中文检索分词插件ngram之前,先得在MySQL配置文件里面设置他的分词大小,比如,[mysqld]ngram_token_size2这里把分词大小设置为2。要记住,分词的SIZE越大,索引的体积就越大,所以要根据自身情况来设置合适的大小。示例表结构:
CREATE TABLE articles (id INTUNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,titleVARCHAR(200),body TEXT,FULLTEXT (title,body) WITH PARSER ngram) ENGINEInnoDBCHARACTER SET utf8mb4;示例数据,有6行记录。mysql select * from articlesG**************************
*1. row ***************************id: 1title: 数据库管理body: 在本教程中我将向你展示如何管理数据库***************************2. row ***************************id: 2title: 数据库应用开发body: 学习开发数据库应用程序***************************3. row ***************************id: 3title: MySQL完全手册body: 学习MySQL的一切***************************4. row ***************************id: 4title: 数据库与事务处理body: 系统的学习数据库的事务概论***************************5. row ***************************id: 5title: NoSQL精髓body: 学习了解各种非结构化数据库***************************6. row ***************************id: 6title: SQL 语言详解body: 详细了解如果使用各种SQL6 rows inset (0.00 sec)显式指定全文检索表源mysql SETGLOBAL innodb_ft_aux_tablenew_feature/articles;Query OK, 0 rows affected (0.00 sec)通过系统表,就可以查看到底是怎么划分articles里的数据。
mysql SELECT *FROM information__FT_INDEX_CACHE LIMIT 20,10; ------ -------------- ------------- ----------- -------- ---------- | WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID| POSITION | ------ -------------- ------------- ----------- -------- ---------- | 中我 | 2 | 2 | 1 | 2 | 28 || 习m | 4 | 4 | 1 | 4 | 21 || 习了 | 6 | 6 | 1 | 6 | 16 || 习开 | 3 | 3 | 1 | 3 | 25 || 习数 | 5 | 5 | 1 | 5 | 37 || 了解 | 6 | 7 | 2 | 6 | 19 || 了解 | 6 | 7 | 2 | 7 | 23 || 事务 | 5 | 5 | 1 | 5 | 12 || 事务 | 5 | 5 | 1 | 5 | 40 || 何管 | 2 | 2 | 1 | 2 | 52 | ------ -------------- ------------- ----------- -------- ---------- 10 rows in set (0.00 sec)这里可以看到,把分词长度设置为2,所有的数据都只有两个一组。上面数据还包含了行的位置,ID等等信息。
接下来,我来进行一系列检索示范,使用方法和原来英文检索一致。1. 自然语言模式下检索:A,得到符合条件的个数,mysqlSELECT COUNT(*) FROM articles- WHERE MATCH (title,body) AGAINST (数据库 IN NATURALLANGUAGE MODE); ---------- | COUNT(*) | ---------- | 4 | ---------- 1 row in set (0.05 sec)B,得到匹配的比率,mysqlSELECT id, MATCH (title,body) AGAINST (数据库 IN NATURAL LANGUAGE MODE)AS score FROM articles; ---- ---------------------- | id| score | ---- ---------------------- | 1 | 0.12403252720832825 || 2 | 0.12403252720832825 || 3 | 0 || 4 | 0.12403252720832825 || 5 | 0.062016263604164124 || 6 | 0 | ---- ---------------------- 6rows in set (0.00 sec)2. 布尔模式下搜索,这个就相对于自然模式搜索来的复杂些:A,匹配既有管理又有数据库的记录,mysql SELECT * FROM articles WHERE MATCH (title,body)- AGAINST ( 数据库 管理 IN BOOLEAN MODE); ---- ------------ -------------------------------------- | id| title | body | ---- ------------ -------------------------------------- | 1 | 数据库管理 | 在本教程中我将向你展示如何管理数据库| ---- ------------ -------------------------------------- 1 rowin set (0.00 sec)B,匹配有数据库,但是没有管理的记录,mysql SELECT * FROM articles WHERE MATCH (title,body)- AGAINST ( 数据库 -管理 IN BOOLEAN MODE); ---- ------------------ ---------------------------- | id| title | body | ---- ------------------ ---------------------------- | 2 | 数据库应用开发 | 学习开发数据库应用程序 || 4 | 数据库与事务处理 | 系统的学习数据库的事务概论 || 5 | NoSQL 精髓 | 学习了解各种非结构化数据库 | ---- ------------------ ---------------------------- 3rows in set (0.00 sec)C,匹配MySQL,但是把数据库的相关性降低,mysql SELECT * FROM articles WHERE MATCH (title,body)- AGAINST (数据库 MySQL INBOOLEAN MODE); ---- --------------- ----------------- | id| title | body | ---- --------------- ----------------- | 3 | MySQL完全手册 |学习MySQL的一切 | ---- --------------- ----------------- 1 rowin set (0.00 sec)3,查询扩展模式,比如要搜索数据库,那么MySQL,oracle,DB2也都将会被搜索到,mysql SELECT * FROM articles- WHERE MATCH (title,body)- AGAINST (数据库 WITH QUERY EXPANSION); ---- ------------------ -------------------------------------- | id| title | body | ---- ------------------ -------------------------------------- | 1 | 数据库管理 | 在本教程中我将向你展示如何管理数据库| 4 | 数据库与事务处理 | 系统的学习数据库的事务概论| 2 | 数据库应用开发 | 学习开发数据库应用程序 || 5 | NoSQL 精髓 | 学习了解各种非结构化数据库 || 6 | SQL 语言详解 | 详细了解如果使用各种SQL|| 3 | MySQL完全手册 | 学习MySQL的一切 | ---- ------------------ -------------------------------------- 6rows in set (0.01 sec)当然,我这里只是功能演示,更多的性能测试,大家有兴趣可以进行详细测试。由于N-grm是中文检索常用的分词算法,已经在互联网大量使用,这次集成到mysql中,想必效果上不会有太大的问题。