数据库MySQL多个数据库服务冲突

一、目标名称

  MySQL

二、目标版本

  mysql-5.6.24-win32.1432006610.zip

三、环境信息

  系统:windows 7 旗舰版

  防火墙:关闭  —— 注意:如果防火墙不关闭或不允许列外的话,远程登陆将会失败。

四、问题严重性和复杂度

  严重性:非常严重,直接导致数据库无法使用,与之相关的所有应用均受到影响。

  复杂度:非常复杂,涉及到数据库的安装问题,由其他安装应用程序引入,问题比较隐晦不容易发现。

五、问题描述

  (1) - 首先是依赖于该数据库的程序打开时,弹出错误对话框提示所数据库“某某@某某”无法访问。

  

  在MySQL数据库中出现这种无法访问的原因有很多,例如服务器未开通远程访问权限,用户密码错误等一系列原因。上图中‘root‘@‘localhost‘显示我在本地登录,但事实上这是我已经把MySQL数据库维护好了之后故意在本地制造的一个无法访问的提示,因为要重现原来的我又得忙活半天了。

  (2) - 然后到Navicat中访问数据库同样出现无法访问的错误提示。初步判断时数据库服务没启动造成的。

  (3) - 远程登录到用windows 7旗舰版系统做的服务器,并用管理员权限运行命令窗口。

  (4) - 切换到mysql\bin目录下,用mysql -u root -p登录数据库,发现以前设置的密码不能用了,直接提示Access denied for user。然后我尝试不用密码直接登陆,我发现能够进入MySQL,并且通过select user()查询到自己当前的登陆用户是[email protected]。但是用show databases查询数据库时始终只有infromation_schema和test两个数据库,而目录下的mysql和其他应用数据库都没有显示出来。并且在设置mysqladmin -u root -p password后密码无法修改,悲催。

  (5) - 开始向通过直接卸载服务,然后重新安装服务来解决该问题,于是我使用net stop mysql停止服务,再使用mysqld remove卸载服务。我尝试重新安装服务,然后再启动mysql服务,发现仍然只有infromation_schema和test两个数据库。于是我开始认为是my-default.ini配置文件的问题,我又开始尝试寻找各种配置my.ini的方法,这个启动mysql服务的过程中出现最多的是1067。光这个问题就会把你整崩溃,因为你完全不知道错哪儿。这里有一个非常隐晦的问题,启动不了不一定是my.ini的问题,也可能是其他问题,例如其他的软件也安装并启动了mysql服务,而我们停止的和启动的是冲突的服务,但是一般我们无法发现,只看到它给我们反馈了1067的错误。我光解决这个问题就花了1天的时间,被弄得非常无语。

  (6) - 换了一台机器,在官网上下载了最新的MySQL 5.7.11 for Windows再我家用电脑上安装之后任然只有infromation_schema和test两个数据库。最后不得不使用原来的mysql-5.6.24-win32.1432006610.zip数据库版本进行解压,不用配置my.ini直接使用默认的my-default.ini安装启动mysql服务后登录可以看见mysql这个数据库,喜出望外。

  (7) - 在本地使用Navicat测试连接,更改数据库mysql使用update user set host=‘%‘ where user=‘root‘;  flush privilideges;更新外界访问权限,此时还有一点问题就是我的user中有一个user为空,host为localhost的用户,这条记录会伤害本地连接以及远程访问,因此我删掉之后就能正常访问了。

  (8) - 原来的数据库重新加入到data目录下,直接拷贝其他的,注意mysql、information_schema、test等原有的数据库就不要拷贝了,尤其是mysql。拷贝之后会发现我们拷贝过来的数据库能看见,但是数据库不能够访问,会出现inodb错误之类的东西。

  (9) - 将原来的数据库中data目录下除了跟本地用户相关的文件的其他文件都拷贝过来覆盖即可。

  

  (10)- 回到原来的服务器,使用Navicat登录到本地,发现能够登录无密码版本的,并且找到了zantao的数据库,于是找到问题原因是因为这个叫禅道的软件也启动了mysql服务,这个服务于我安装的服务冲突,而我在命令窗口登录时识别到的是另外一个,这种冲突很隐晦。mysql自身无法很好的检测。

  (11) - 停止服务,并重新配置我的数据库,OK了。

时间: 2024-10-22 04:11:11

数据库MySQL多个数据库服务冲突的相关文章

mysql数据库字段命名与关键字冲突之坑

mysql> SELECT desc,status,play_time,push_type, 'interval' FROM cms_push; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 700 Current database: xxx_cms ERROR 1064 (42000): You have an error in your S

趁一切还来得及【六】数据库MySQL读写分离与主主同步

相思相见知何日?此时此夜难为情.                                                      --[唐]李白 第一章 数据库MySQL主从复制读写分离授权 1.1 主从复制读写分离方案简单分析 ①数据库主从复制搭建之后,因为数据是单向的,因此默认规则就是所有的数据(主从相关收据)写入和更新都在主库上进行操作,避免主从同步的时候造成冲突. ②严格上来讲,从库上的非同步的库写入数据,只要和主库没有关系,也是可以写入的(或者作为主库),但是如果主从都想其中

趁一切还来得及【一】数据库MySQL基础知识及编译安装

此情更待成追忆,只是当时已惘然.                                        --[唐]李商隐 第一章 数据库概述及分类特点应用 1.1 数据库种类.语言处理.典型产品 ①数据库的理解:就是一个存放数据的仓库,这个仓库是按照一定的数据结构,来组织和存储的.可以通过数据库提供的多种方法来管理数据库. ②数据库的种类:按照早期的数据库理论分为层次数据库.网络式数据库.和关系型数据库.当今互联网最常用的就是关系型数据库和非关系型数据库(NOSQL). ③关系型数据库:

趁一切还来得及【五】数据库MySQL主从同步的实践部署

自笑栖迟淮海客,十年心事一灯前.                                           --[元]萨都拉 第二章 数据库MySQL主从同步部署操作实践 2.1 数据同步相关应用基础 ①MySQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的部署管理也就显得非常重要. ②MySQL主从同步的作用:(1) 数据分布,(2) 负载平衡(load balancing),(3) 备份,(4) 高可用性(high availability

云应用开发之新浪SAE读写云端数据库MySQL

本博文为前篇博文新浪云应用SAE日志查看的延续. 在读写云数据库MySQL之前,须要说明的是,在新浪云平台上使用数据库时.该平台默认会为每个应用单独新建一个数据库database实例.在该实例中再创建各种我们须要的表tables.当然,通过设置能够让多个应用共享同一个数据库实例. 以下为应用加入数据库服务步骤. 一.通过控制台初始化MySQL 1.在新浪云控制台左側数据库服务子项下进入共享型MySQL 2.然后出现页面 3.点击初始化MySQLbutton出现页面 4.点击第一个方框(通过第二个

恢复云数据库MySQL的备份文件到自建数据库

前提条件: 本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同. 操作系统中已安装数据恢复工具Percona XtraBackup 2.2.9或以上版本 请从Percona XtraBackup官网下载:https://www.percona.com/downloads/XtraBackup/LATEST/ percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm 是rpm包安装快速 # yum localinstall per

监控mysql和mongo数据库服务脚本--shell编写

应帅气的领导要求,需要脚本监控生产环境mysql和mongo数据库服务.不仅要connect successful还要进行数据交互进一步确认数据库服务正常. 代码如下: #!/bin/bash #author:吴青聪 #email:wuqingcong@aliyun.com #encoding: utf-8 #声明四个数据,存放数据库信息 ip.用户.密码.端口 declare -a host declare -a user declare -a passwd declare -a port #

MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values('localhost','jeecn',password('jeecn'));//刷新系统权限表mysql>flush privileges;这样就创建了一个名为:jeecn  密码为:jeecn  的用户. //退出后登录一下mysql>exit;@>mysql -u

云时代的分布式数据库:阿里分布式数据库服务DRDS

[http://www.csdn.net/article/2015-07-15/2825221] 云时代的分布式数据库:阿里分布式数据库服务DRDS -- 伴随着系统性能.成本及扩展性的新时代需要,以HBase.MongoDB为代表的NoSQL数据库和以阿里DRDS.VoltDB.ScaleBase为代表的分布式NewSQL数据库如雨后春笋般不断涌现出来.本文详细介绍了阿里分布式数据库服务DRDS.