![](/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.