![](/img/trans.png)
[英]Bootstraping Percona Xtradb Cluster in Docker gives the error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
[英]Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
我使用二进制 zip 安装了 MySQL 社区服务器 5.7.10。 我在c:\\mysql
提取了 zip 并在c:\\mysql\\data
创建了数据文件夹。 我将配置文件创建为my.ini
并将其放置在c:\\mysql
(解压缩的 zip 的根文件夹)中。 下面是my.ini
文件的内容
# set basedir to your installation path
basedir=C:\mysql
# set datadir to the location of your data directory
datadir=C:\mysql\data
我正在尝试使用mysqld --console
启动 MySQL,但该过程因以下错误而中止。
2015-12-29T18:04:01.141930Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2015-12-29T18:04:01.141930Z 0 [ERROR] Aborting
对此的任何帮助将不胜感激。
您必须通过运行以下命令来初始化数据目录
mysqld --initialize
[使用随机root密码]
mysqld --initialize-insecure
[root 密码为空]
mysql_install_db
脚本还需要datadir
参数:
mysql_install_db --user=root --datadir=$db_datapath
在 Maria DB 上,您使用安装脚本mysql_install_db
来安装和初始化。 就我而言,我为数据路径使用环境变量。 mysqld
不仅需要知道数据在哪里(通过命令行指定),而且安装脚本也需要知道。
mysqld --initialize 初始化数据目录然后mysqld &
如果您已经在没有 mysqld --initialize 的情况下启动了 mysqld&,您可能必须删除数据目录中的所有文件
您还可以修改 /etc/my.cnf 以将自定义路径添加到您的数据目录,如下所示:
[mysqld]
...
datadir=/path/to/directory
如上所述,我在 mysql-5.7.18 上遇到了类似的问题,
我是这样做的
1.从“MYSQL_HOME\\bin\\mysqld.exe --initialize-insecure”执行这个命令
2.然后启动“MYSQL_HOME\\bin\\mysqld.exe”
3. 使用用户名“root”将工作台连接到这个 localhost:3306
4.然后执行这个查询“SET PASSWORD FOR 'root'@'localhost' = 'root';”
密码也更新成功。
我有同样的问题。 由于某种原因--initialize
不起作用。 在使用不同的参数、配置和命令进行了大约 5 个小时的反复试验后,我发现问题是由文件系统引起的。
我想在大型 USB 硬盘驱动器上运行数据库。 大于 2 TB 的驱动器是 GPT 分区的! 这是一个带有解决方案的错误报告:
https://bugs.mysql.com/bug.php?id=28913
简而言之:将以下行添加到您的 my.ini 中:
innodb_flush_method=normal
我在 Windows 上使用 mysql 5.7 时遇到了这个问题。
我的问题是由不正确的数据库还原引起的。 当我删除 db 时,它也获取了系统 mysql 表,因为我在-p
之后添加了一个空格,如下所述: mysqldump is dumping undesired system tables
启动 docker 实例会起作用,然后我会恢复(并损坏)数据库并且它仍然会继续运行,但是在重新启动后它会退出并显示错误代码 1。
解决方案是在没有系统表的情况下正确转储和恢复。
当服务器重新启动时,我在Mysql 5.7.33
版本中遇到了同样的问题。 我通过复制其他服务器用户文件scp /var/lib/mysql/mysql/user.* root@dest:/var/lib/mysql/mysql
修复它。
我使用二进制zip安装了MySQL社区服务器5.7.10。 我在c:\\mysql
提取了zip文件,并在c:\\mysql\\data
创建了数据文件夹。 我将配置文件创建为my.ini
,并将其放置在c:\\mysql
(提取的zip的根文件夹)中。 以下是my.ini
文件的内容
# set basedir to your installation path
basedir=C:\mysql
# set datadir to the location of your data directory
datadir=C:\mysql\data
我正在尝试使用mysqld --console
启动MySQL,但是该过程因以下错误而中止。
2015-12-29T18:04:01.141930Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2015-12-29T18:04:01.141930Z 0 [ERROR] Aborting
任何帮助,将不胜感激。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.