Windows
無法打開和鎖定特權表:表 ‘mysql.user’ 不存在 - 嘗試執行 myslq 的第二個實例
在Win7盒子上。
我下載了 mysql-5.7.9 並嘗試將它作為自己的自包含實例與另一個已經執行的舊版本實例一起執行。
我用這個命令安裝了一個新服務:
"C:\mysql-5.7.9\bin\mysqld.exe" --install mysql579 --defaults-file="C:\mysql-5.7.9\bin\my.cnf"
這是my.cnf:
[client] port = 3307 socket = mysql579 [mysqld] basedir="C:/mysql-5.7.9" tmpdir="C:/mysql-5.7.9/tmp" datadir="C:/mysql-5.7.9/data" port = 3307 socket = mysql579 character-set-server = latin1 collation-server = latin1_general_ci server-id = 2 [WinMySQLadmin] Server="C:/mysql-5.7.9/bin/mysqld.exe"
我不確定這是否是解決此問題的正確命令,因為我認為它沒有使用我的選項文件,但這是我在執行時看到的
C:\mysql-5.7.9\bin>mysqld.exe --defaults-file="C:\mysql-5.7.9\bin\my.cnf" --standalone --console
2015-12-16T20:59:53.098442Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server optio n (see documentation for more details). 2015-12-16T20:59:53.098442Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Co nsider setting it to a valid, non-empty path. 2015-12-16T20:59:53.098442Z 0 [Note] mysqld.exe (mysqld 5.7.9) starting as process 68544 ... 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Uses event mutexes 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Memory barrier is not used 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Number of pools: 1 2015-12-16T20:59:53.114042Z 0 [Note] InnoDB: Not using CPU crc32 instructions 2015-12-16T20:59:53.145242Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M 2015-12-16T20:59:53.160842Z 0 [Note] InnoDB: Completed initialization of buffer pool 2015-12-16T20:59:53.238843Z 0 [Note] InnoDB: Highest supported file format is Barracuda. 2015-12-16T20:59:53.441644Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables 2015-12-16T20:59:53.441644Z 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB. 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active. 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active. 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: 5.7.9 started; log sequence number 1210148 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\mysql-5.7.9\data\ib_buffer_pool 2015-12-16T20:59:53.628845Z 0 [Note] Plugin 'FEDERATED' is disabled. 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: not started mysqld: Table 'mysql.plugin' doesn't exist 2015-12-16T20:59:53.628845Z 0 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 2015-12-16T20:59:53.628845Z 0 [Note] InnoDB: Buffer pool(s) load completed at 151216 15:59:53 2015-12-16T20:59:53.628845Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2015-12-16T20:59:53.628845Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key 2015-12-16T20:59:53.628845Z 0 [Note] Server hostname (bind-address): '*'; port: 3307 2015-12-16T20:59:53.644445Z 0 [Note] IPv6 is available. 2015-12-16T20:59:53.644445Z 0 [Note] - '::' resolves to '::'; 2015-12-16T20:59:53.644445Z 0 [Note] Server socket created on IP: '::'. 2015-12-16T20:59:53.644445Z 0 [Warning] Failed to open optimizer cost constant tables 2015-12-16T20:59:53.644445Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist 2015-12-16T20:59:53.644445Z 0 [ERROR] Aborting 2015-12-16T20:59:53.644445Z 0 [Note] Binlog end 2015-12-16T20:59:53.644445Z 0 [Note] Shutting down plugin 'ngram' ...
今天晚上我遇到了同樣的問題,設置了一個新的 MySQL 伺服器。我不知道,自 5.7.7 以來 MySQL 不提供初始數據(比較MySQL 5.7 Reference - 2.3.5.4 Initializing the data directory)。因為你得到同樣的錯誤,我想你沒有現有數據(預初始化帳戶),所以嘗試執行
mysqld --initialize --console