如何修复MySQL数据库

如何修复MySQL数据库,第1张

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据。

复杂情况下:

从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和 *** 作。经过如下几种情况的 *** 作。

1 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 50),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 50\。结果,失败:数据库连接错误。

2 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 50\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 50\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 50\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(34G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 50\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问 *** 作。

至此, *** 作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

可以在字段后面添加:

longname varchar(20) character set latin1 collate latin1_bin not null comment'登陆账号',

可以在表后面添加:

create table ww

(

) DEFAULT CHARSET=latin1;

本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些 *** 作都是平时很常用的 *** 作。文章中不对mysql的可执行文件安装版做介绍了,可执行安装版有很多的弊端,我也不一一说了。总之,我喜欢绿色环保的,包括eclipse、tomcat、jboss、apache也是,即使 *** 作系统重装了,这些软件也不需要重装,可谓一劳永逸!

环境:

Windows 2000/XP/2003

mysql-noinstall-5037-win32zip

一、下载MySQL

二、安装过程

1、解压缩mysql-noinstall-5037-win32zip到一个目录,加入解压缩到E:\myserver目录。

2、编写mysql的运行配置文件myini

myini

-----------------------------

[WinMySQLAdmin]

# 指定mysql服务启动启动的文件

Server=E:\\myserver\\mysql-5037-win32\\bin\\mysqld-ntexe

[mysqld]

# 设置mysql的安装目录

basedir=E:\\myserver\\mysql-5037-win32

# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data

datadir=E:\\myserver\\mysql-5037-win32\\data

# 设置mysql服务器的字符集

default-character-set=gbk

[client]

# 设置mysql客户端的字符集

default-character-set=gbk

-----------------------------

3、安装mysql服务

从MS-DOS窗口进入目录E:\myserver\mysql-5037-win32\bin,运行如下命令

mysqld --install mysql5 --defaults-file= E:\myserver\mysql-5037-win32\myini

4、启动mysql数据库

还在上面的命令窗口里面,输入命令:net start mysql5

这样就启动了mysql服务。

5、(本地)登录mysql数据库

还在上面的命令窗口里面,输入命令:mysql -u root -p

回车后提示输入密码。

mysql解压缩版初次安装管理员root的密码为空,因此直接再回车一次就登入mysql数据库了。

如果你不是初次登录mysql,你还拥有网络地址的用户,那么你可以用如下命令登录到mysql服务器,这个mysql服务器也许在远方,也许在本地。这种登录方式叫“远程登录”,命令如下:

mysql -h 1921683143 -u root -p

mysql -h 1921683143 -u root -pleizhimin

-h是指定登录ip,-u指定用户,-p指定密码,-p后如果什么都不写,那么接下来会提示输入密码,-p后也可以直接写上密码,这样就不再需要输入密码了。

6、 *** 作数据库和表

登录mysql数据库后,就可以执行指定 *** 作数据库,用命令:use 数据库名

指定了 *** 作的数据库对象后,就可以 *** 作数据库中的表了, *** 作方法当然是SQL命令了,呵呵。

7、更改mysql数据库管理员root的密码

mysql数据库中默认有个mysql数据库,这个是mysql系统的数据库,用来保存数据库用户、权限等等很多信息。要更改密码,就要 *** 作mysql数据库的user表。

现在mysql的root用户密码还为空,很不安全的,假设要更改密码为“leizhimin”。

还在上面的命令窗口里面,执行如下命令:

use mysql;

grant all on to root@'%' identified by 'leizhimin' with grant option;

commit;

这段命令的含义是,添加一个root用户,拥有所有的权限,密码为“leizhimin”,并且这个用户不但可以本地访问,也可以通过网络访问。强调这个原因是mysql系统自带的的那个root用户只能从本地访问,它@字符后面的标识是localhost。具体可以查看mysql数据的uer表看看,这样以来,就有两个root用户了,一个是系统原来的,一个新建的,为了管理的方便,就将mysql自带root删除,保留刚创建的这个root用户,原因是这个用户可以通过网络访问mysql。

然后,删除用户的命令:

user mysql;

delete from user where user='root' and host='localhost';

commit;

其实上面的方法是授权命令,在授权的同时创建了数据库用户。mysql也有单独的修改用户密码的方法,下面看看如何 *** 作。

首先,先建立一个用户lavasoft,密码为:123456

grant all on to lavasoft@'localhost' identified by '123456' with grant option;

接下来就修改这个用户的密码为:leizhimin

update user set password = password('leizhimin') where user = 'lavasoft' and host='localhost';

flush privileges;

说明一点,最好用grant的方式创建mysql用户,尤其对mysql DBA来说,创建用户的同时要指定用户权限,养成好习惯很重要的。

这个修改方法实际上用的是mysql函数来进行的,还有更多的方法,我就不一一介绍了。

还要注意一点就是在修改密码等 *** 作的时候,mysql不允许为表指定别名,但是初次在外却没有这个限制。

8、创建数据库

实际上mysql数据库中除了mysql数据库外,还有一个空的数据库test,供用户测试使用。

现在继续创建一个数据库testdb,并执行一系列sql语句看看mysql数据库的基本 *** 作。

创建数据库testdb:

create database testdb;

预防性创建数据库:

create database if not testdb

创建表:

use testdb;

create table table1(

username varchar(12),

password varchar(20));

预防性创建表aaa:

create table if not exists aaa(ss varchar(20));

查看表结构:

describe table1;

插入数据到表table1:

insert into table1(username,password) values

('leizhimin','lavasoft'),

('hellokitty','hahhahah');

commit;

查询表table1:

select from table1;

更改数据:

update table1 set password='hehe' where username='hellokitty';

commit;

删除数据:

delete from table1 where username='hellokitty';

commit;

给表添加一列:

alter table table1 add column(

sex varchar(2) comment '性别',

age date not null comment '年龄'

);

commit;

从查询创建一个表table1:

create table tmp as

select from table1;

删除表table1:

drop table if exists table1;

drop table if exists tmp;

9、备份数据库testdb

mysqldump -h 1921683143 -u root -pleizhimin -x --default-character-set=gbk >C:\testdbsql

10、删除数据库testdb

drop database testdb;

11、恢复testdb数据库

首先先建立testdb数据库,然后用下面命令进行本地恢复:

mysql -u root -pleizhimin testdb <C:\testdbsql

12、删除mysql服务

假如你厌倦mysql了,你需要卸载,那么你只需要这么做

停止mysql服务

net stop mysql5

删除mysql服务

sc delete mysql5

然后删除msyql的安装文件夹,不留任何痕迹。

以上就是关于如何修复MySQL数据库全部的内容,包括:如何修复MySQL数据库、mysql创建数据库问题!、请教大家,MYSQL用什么库最稳定等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9516880.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存