您的位置:首页 > 理论基础

MYSQL ERROR 1045 (28000) 本地计算机上的MySQL服务启动后停止 DATA文件备份,迁移,文件结构 java时区错误,时区设置

qq_42544450 2020-07-20 04:22 155 查看 https://blog.csdn.net/qq_42544

本地计算机上的MySQL服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止

1. 找到mysql的data文件夹,将data进行备份,一定要备份!

(data文件夹路径可以在mysql安装目录的my.ini文件中搜索datadir找到)

2.将data文件夹删除

3.用管理员身份打开cmd,进入到mysql的bin目录下,输入命令初始化data文件夹

mysqld --initialize-insecure --user=mysql

 ERROR 1045 (28000): 

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数据存放在 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表损坏时,就可以依靠这些日志文件来恢复。

data备份 冷备份 需要停止服务

本人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

data文件迁移

将待恢复数据库文件夹,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';
 

标签: 
相关文章推荐