1. 找到mysql的data文件夹,将data进行备份,一定要备份!
(data文件夹路径可以在mysql安装目录的my.ini文件中搜索datadir找到)
2.将data文件夹删除
3.用管理员身份打开cmd,进入到mysql的bin目录下,输入命令初始化data文件夹
mysqld --initialize-insecure --user=mysql
net stop mysql
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysqld --console --skip-grant-tables --shared-memory
新 打开命令管理员
mysql -uroot -p 就能免密进入
之后修改密码:
use mysql;
update user set authentication_string='' where user='root' ; 如果这个字段有值先置为空
flush privileges; 刷新权限表
ALTER user 'root'@'localhost' IDENTIFIED BY '5953'; 修改root 密码
net start mysql
mysql数据存放在 Mysql Server x.x\data\下。
MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL(server)所建数据库文件和MySQL(server)所用存储引擎创建的数据库文件。
1、MySQL(server)创建并管理的数据库文件:
.frm文件:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,与操作系统和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。
除了必有的.frm文件,根据MySQL所使用的存储引擎的不同(MySQL常用的两个存储引擎是MyISAM和InnoDB),存储引擎会创建各自不同的数据库文件。
2、MyISAM数据库表文件:
.MYD文件:即MY Data,表数据文件
.MYI文件:即MY Index,索引文件
.log文件:日志文件
3、InnoDB采用表空间(tablespace)来管理数据,存储表数据和索引,
InnoDB数据库文件(即InnoDB文件集,ib-file set):
ibdata1、ibdata2等:系统表共享空间文件,存储InnoDB系统信息和用户数据库表数据和索引,所有表共用。
.ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引。
日志文件: ib_logfile1、ib_logfile2
使用直接拷贝数据库文件的方式进行打包备份,执行步骤:锁表、备份、解表。恢复直接拷贝到之前的数据库文件的存放目录即可。
对于Innodb引擎的表来说,还需要备份日志文件,即ib_logfile*文件。因为当Innodb表损坏时,就可以依靠这些日志文件来恢复。
本人mysql8.0需要对数据库文件夹,ibdata1, ib_logfile0, ib_logfile1b1,ib_buffer_pool,mysql.ibd备份。
将old数据库复制到new数据库
1、创建新的数据库
mysql -u root -p123456
CREATE DATABASE `new` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
2、使用mysqldump及mysql组合命令
mysqldump old -u root -p123456 | mysql new -u root -p123456
3、如果不在同一个mysql服务器上
mysqldump old -uroot -p123456 | mysql -h 10.1.1.2 new -u root -p123456
将待恢复数据库文件夹,ibdata1,my.ini文件拷贝到新的mysql对应目录下,并在my.ini任意位置添加iinnodb_file_per_table=6。(ibdata1,my.ini请备份),此时正常启动mysql,待恢复数据库可以访问。导出sql,恢复ibdata1,my.ini文件。
1)查看mysql时区:
show variables like "%time_zone%";
2)解决方法:
1.在原来的参数“url”后面,拼上这个字符串:?serverTimezone=GMT%2B8,
如:jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
东八区的表示:GMT%2B8,即GMT+8,北京时间东八区
2.设置mysql的时区
MySQL默认的时区是UTC时区
(1)永久的修改:修改mysql的配置文件my-default.ini,添加:default-time-zone=’+08:00’,重启mysql生效,注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable ‘default-time-zone=+8:00’
linux修改conf文件 不用加【mysqld】
my-default.ini文件内:
[mysqld]
default-time-zone='+08:00'
(2)临时的修改:执行mysql命令 set global time_zone=’+08:00’,立即生效,重启mysql后失效
set time_zone = '+8:00';
set global time_zone='+08:00';