Windows 上的 MySQL 安装 - 以及如何修复丢失的 mysql.user?

Posted

技术标签:

【中文标题】Windows 上的 MySQL 安装 - 以及如何修复丢失的 mysql.user?【英文标题】:MySQL installation on Windows - and how to fix missing mysql.user? 【发布时间】:2017-06-20 08:12:50 【问题描述】:

我使用的是旧的 mysql 5.0 安装。然后决定获取最新的 5.7 .zip 版本。

这就是我所做的:

mysqld -initialize-insecure

(因为我打算仅将其用于 localhost/root 使用)

这会在 MySQL 数据目录的根目录中创建一些文件。

但是,正在运行

mysqld --console

报错

2017-02-03T02:52:01.076801Z 0 [错误] 致命错误:无法打开和锁定 权限表:表 'mysql.user' 不存在

然后我打算移动我的两个 5.0 数据库(每个都在我的旧 mysql 5.0“数据目录”目录的一个子文件夹中。)

然后我可以运行 mysql_upgrade 吗?

我的完整错误日志在这里:

D:\databases\MySQL-5_7(x86)\bin>mysqld --console 2017-02-03T02:52:00.227754Z 0 [警告] 带有隐式的 TIMESTAMP 不推荐使用默认值。请用 --explicit_defaults_for_timestamp 服务器选项(有关详细信息,请参阅文档)。 2017-02-03T02:52:00.227754Z 0 [警告] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' 和 'ERROR_FOR_DIVISION_BY_ZERO' sql 模式应该是 与严格模式一起使用。它们将与严格模式合并 未来的版本。 2017-02-03T02:52:00.227754Z 0 [警告] 'NO_AUTO_CREATE_USER' sql 模式未设置。 2017-02-03T02:52:00.227754Z 0 [注意] --secure-file-priv 设置为 空值。数据导入导出相关操作被禁用 2017-02-03T02:52:00.227754Z 0 [注意] mysqld (mysqld 5.7.17) 开始 作为进程 13872 ... 2017-02-03T02:52:00.235754Z 0 [注意] InnoDB: 互斥锁和 rw_locks 使用 Windows 互锁函数 2017-02-03T02:52:00.236754Z 0 [注意] InnoDB:使用事件互斥锁 2017-02-03T02:52:00.236754Z 0 [注意] InnoDB:内存屏障不是 使用 2017-02-03T02:52:00.237754Z 0 [注意] InnoDB:压缩表 使用 zlib 1.2.3 2017-02-03T02:52:00.237754Z 0 [注意] InnoDB:数量 池:1 2017-02-03T02:52:00.238755Z 0 [注意] InnoDB:不使用 CPU crc32 指令 2017-02-03T02:52:00.240755Z 0 [注意] InnoDB: 初始化缓冲池,总大小=128M,实例=1,块大小 = 128M 2017-02-03T02:52:00.249755Z 0 [注意] InnoDB: 缓冲池初始化完成 2017-02-03T02:52:00.363762Z 0 [注意] InnoDB:支持的最高文件格式是梭子鱼。 2017-02-03T02:52:00.498769Z 0 [注意] InnoDB:创建共享 临时表的表空间 2017-02-03T02:52:00.499769Z 0 [注意] InnoDB:将文件 '.\ibtmp1' 大小设置为 12 MB。物理写入 文件已满;请稍候... 2017-02-03T02:52:00.745783Z 0 [注意] InnoDB:文件 '.\ibtmp1' 大小现在为 12 MB。 2017-02-03T02:52:00.933793Z 0 [注意] InnoDB:找到 96 个重做回滚段。 96 重做回滚 段处于活动状态。 2017-02-03T02:52:00.934792Z 0 [注] InnoDB: 32 非重做回滚段处于活动状态。 2017-02-03T02:52:00.936793Z 0 [注意] InnoDB:等待清除开始 2017-02-03T02:52:00.988797Z 0 【注】InnoDB:5.7.17 开始;日志序列号 1209961 2017-02-03T02:52:00.988797Z 0 [注意] 插件 'FEDERATED' 已禁用。 2017-02-03T02:52:00.990797Z 0 [注意] InnoDB:加载缓冲池 从 W:\b-databases\MySql\5.0.x\data\ib_buffer_pool mysqld: 表 'mysql.plugin' 不存在 2017-02-03T02:52:00.991796Z 0 [错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 创建 它。 2017-02-03T02:52:00.993796Z 0 [注意] 加盐 uuid 生成器 变量,current_pid:13872,server_start_time:1486090320, bytes_sent: 0, 2017-02-03T02:52:00.993796Z 0 [注意] InnoDB: 缓冲区 池加载完成于 2017-02-03T02:52:00.997796Z 170203 3:52:00 0 【注】生成的uuid:'bc608dfe-e9bb-11e6-b692-00248c156225', server_start_time:1486104192,bytes_sent:361844000 2017-02-03T02:52:00.997796Z 0 [警告] 没有现有的 UUID 找到了,所以我们假设这是这个服务器第一次有 已开始。生成新的 UUID: bc608dfe-e9bb-11e6-b692-00248c156225。 2017-02-03T02:52:01.041799Z 0 [警告] Gtid 表尚未准备好使用。桌子 'mysql.gtid_executed' 无法打开。 2017-02-03T02:52:01.041799Z 0 [警告] 由于以下 SSL 库,设置 SSL 失败 错误:没有证书和私钥,SSL 上下文不可用 2017-02-03T02:52:01.043799Z 0 [注意] 服务器主机名(绑定地址): '*';端口:3306 2017-02-03T02:52:01.044802Z 0 [注意] IPv6 是 可用的。 2017-02-03T02:52:01.045801Z 0 [注] - '::' 解析为 '::'; 2017-02-03T02:52:01.045801Z 0 [注意] 服务器套接字创建于 IP:'::'。 2017-02-03T02:52:01.054800Z 0 [警告] 无法打开 优化器成本常数表

2017-02-03T02:52:01.076801Z 0 [错误] 致命错误:无法打开和锁定 特权表:表 'mysql.user' 不存在 2017-02-03T02:52:01.077801Z 0 [错误] 中止

2017-02-03T02:52:01.078801Z 0 [注意] Binlog 结束 2017-02-03T02:52:01.079801Z 0 [注意] 关闭插件“ngram” 2017-02-03T02:52:01.079801Z 0 [注意] 关闭插件“分区” 2017-02-03T02:52:01.080801Z 0 [注意] 关闭插件“黑洞” 2017-02-03T02:52:01.081801Z 0 [注意] 关闭插件“存档” 2017-02-03T02:52:01.081801Z 0 [注意] 关闭插件 'PERFORMANCE_SCHEMA' 2017-02-03T02:52:01.082801Z 0 [注意] 关闭 down plugin 'MRG_MYISAM' 2017-02-03T02:52:01.082801Z 0 [注意] 关闭 down plugin 'MyISAM' 2017-02-03T02:52:01.083801Z 0 [注意] 关闭 下插件 'INNODB_SYS_VIRTUAL' 2017-02-03T02:52:01.083801Z 0 [注意] 关闭插件“INNODB_SYS_DATAFILES” 2017-02-03T02:52:01.084801Z 0 [注意] 关闭插件 'INNODB_SYS_TABLESPACES' 2017-02-03T02:52:01.084801Z 0 [注意] 关闭 关闭插件'INNODB_SYS_FOREIGN_COLS' 2017-02-03T02:52:01.085801Z 0 [注意] 关闭插件'INNODB_SYS_FOREIGN' 2017-02-03T02:52:01.087801Z 0 [注意] 关闭插件 'INNODB_SYS_FIELDS' 2017-02-03T02:52:01.088802Z 0 [注意] 关闭 插件 'INNODB_SYS_COLUMNS' 2017-02-03T02:52:01.089802Z 0 [注意] 关闭插件 'INNODB_SYS_INDEXES' 2017-02-03T02:52:01.089802Z 0 [注意] 关闭插件'INNODB_SYS_TABLESTATS' 2017-02-03T02:52:01.090802Z 0 [注意] 关闭插件 'INNODB_SYS_TABLES' 2017-02-03T02:52:01.091802Z 0 [注意] 关闭 插件 'INNODB_FT_INDEX_TABLE' 2017-02-03T02:52:01.091802Z 0 [注意] 关闭插件“INNODB_FT_INDEX_CACHE” 2017-02-03T02:52:01.092802Z 0 [注意] 关闭插件 'INNODB_FT_CONFIG' 2017-02-03T02:52:01.093802Z 0 [注意] 关闭 插件 'INNODB_FT_BEING_DELETED' 2017-02-03T02:52:01.093802Z 0 [注意] 关闭插件 'INNODB_FT_DELETED' 2017-02-03T02:52:01.094802Z 0 [注意] 关闭插件 'INNODB_FT_DEFAULT_STOPWORD' 2017-02-03T02:52:01.094802Z 0 [注意] 关闭插件 'INNODB_METRICS' 2017-02-03T02:52:01.095802Z 0 [注意] 关闭 插件 'INNODB_TEMP_TABLE_INFO' 2017-02-03T02:52:01.097802Z 0 [注意] 关闭插件“INNODB_BUFFER_POOL_STATS” 2017-02-03T02:52:01.098802Z 0 [注意] 关闭插件 'INNODB_BUFFER_PAGE_LRU' 2017-02-03T02:52:01.099802Z 0 [注意] 关闭 下插件 'INNODB_BUFFER_PAGE' 2017-02-03T02:52:01.099802Z 0 [注意] 关闭插件“INNODB_CMP_PER_INDEX_RESET” 2017-02-03T02:52:01.100802Z 0 [注意] 关闭插件 'INNODB_CMP_PER_INDEX' 2017-02-03T02:52:01.100802Z 0 [注意] 关闭 下插件 'INNODB_CMPMEM_RESET' 2017-02-03T02:52:01.101802Z 0 [注意] 关闭插件 'INNODB_CMPMEM' 2017-02-03T02:52:01.102802Z 0 [注意] 关闭插件'INNODB_CMP_RESET' 2017-02-03T02:52:01.102802Z 0 [注意] 关闭插件“INNODB_CMP” 2017-02-03T02:52:01.103803Z 0 [注意] 关闭插件 'INNODB_LOCK_WAITS' 2017-02-03T02:52:01.103803Z 0 [注意] 关闭 插件 'INNODB_LOCKS' 2017-02-03T02:52:01.104802Z 0 [注意] 关闭 down plugin 'INNODB_TRX' 2017-02-03T02:52:01.104802Z 0 [注意] 关闭 下插件'InnoDB' 2017-02-03T02:52:01.105803Z 0 [注意] InnoDB: FTS 优化线程退出。 2017-02-03T02:52:01.107803Z 0 [注意] InnoDB: 开始关机... 2017-02-03T02:52:01.209808Z 0 [注意] InnoDB: 将缓冲池转储到 W:\b-databases\MySql\5.0.x\data\ib_buffer_pool 2017-02-03T02:52:01.214809Z 0 [注意] InnoDB:缓冲池转储 完成于 170203 3:52:01 2017-02-03T02:52:02.408874Z 0 [注] InnoDB:关闭完成;日志序列号 1209980 2017-02-03T02:52:02.408874Z 0 [注意] InnoDB:临时删除 表空间数据文件:“ibtmp1”2017-02-03T02:52:02.409874Z 0 [注意] 关闭插件'MEMORY' 2017-02-03T02:52:02.410874Z 0 [注意] 关闭插件 'CSV' 2017-02-03T02:52:02.410874Z 0 [注意] 关闭插件 'sha256_password' 2017-02-03T02:52:02.411874Z 0 [注意] 关闭插件 'mysql_native_password' 2017-02-03T02:52:02.412874Z 0 [注意] 关闭插件“binlog” 2017-02-03T02:52:02.412874Z 0 [注意] mysqld:关闭完成

这是 my.ini 文件:

[mysqld]
basedir=D:/databases/MySQL-5_7(x86)
datadir=W:/b-databases/MySql/5.0.x/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

【问题讨论】:

【参考方案1】:

不知何故,我现在让它工作了——我重做了这里提到的内容,这次也创建了用户表。不太清楚为什么它之前不起作用,但仍然值得回答: https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

【讨论】:

页面不存在

以上是关于Windows 上的 MySQL 安装 - 以及如何修复丢失的 mysql.user?的主要内容,如果未能解决你的问题,请参考以下文章

如何用windows系统搭建企业和个人私有云

RabbitMQ探索之路:RabbitMQ在Linux上的安装

分享一些 Windows 平台上的神器

如何为安装在 Windows EC2 上的 ebs 卷标记 Windows 驱动器

MYSQL安装以及卸载 -- WINDOWS

安装MySQL到Windows以及MacOS