MySQL Study之–Mysql啟動失敗“mysql.host”

系統環境

作業系統:RedHat EL55

DB Soft:  Mysql 5.6.4-m7


通過原始碼包安裝mysql後,在啟動mysqld時出現錯誤:

[root@rh55 mysql]# bin/mysqld_safe &
[1] 15846
[root@rh55 mysql]# 150610 17:04:36 mysqld_safe Logging to `/usr/local/mysql/data/mysql/rh55.err`.
150610 17:04:36 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/mysql
150610 17:04:37 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql/rh55.pid ended

[1]+  Done                    bin/mysqld_safe


檢視mysql日誌:

[root@rh55 mysql]# more /usr/local/mysql/data/mysql/rh55.err

  1. 150610 16:56:59 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/mysql  
    /usr/local/mysql/bin/mysqld: Table `mysql.plugin` doesn`t exist  
    150610 16:57:00 [ERROR] Can`t open the mysql.plugin table. Please run mysql_upgrade to create it.  
    150610 16:57:00 InnoDB: The InnoDB memory heap is disabled  
    150610 16:57:00 InnoDB: Mutexes and rw_locks use InnoDB`s own implementation  
    150610 16:57:00 InnoDB: Compressed tables use zlib 1.2.3  
    150610 16:57:00 InnoDB: CPU does not support crc32 instructions  
    150610 16:57:00 InnoDB: Initializing buffer pool, size = 128.0M  
    150610 16:57:00 InnoDB: Completed initialization of buffer pool  
    InnoDB: The first specified data file ./ibdata1 did not exist:  
    InnoDB: a new database to be created!  
    150610 16:57:00 InnoDB: Setting file ./ibdata1 size to 10 MB  
    InnoDB: Database physically writes the file full: wait...  
    150610 16:57:01 InnoDB: Log file ./ib_logfile0 did not exist: new to be created  
    InnoDB: Setting log file ./ib_logfile0 size to 5 MB  
    InnoDB: Database physically writes the file full: wait...  
    150610 16:57:02 InnoDB: Log file ./ib_logfile1 did not exist: new to be created  
    InnoDB: Setting log file ./ib_logfile1 size to 5 MB  
    InnoDB: Database physically writes the file full: wait...  
    InnoDB: Doublewrite buffer not found: creating new  
    InnoDB: Doublewrite buffer created  
    150610 16:57:04 InnoDB: 128 rollback segment(s) are active.  
    InnoDB: Creating foreign key constraint system tables  
    InnoDB: Foreign key constraint system tables created  
    150610 16:57:04 InnoDB: Waiting for the background threads to start  
    150610 16:57:05 InnoDB: 1.2.4 started; log sequence number 0  
    150610 16:57:05 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been  
     started. Generating a new UUID: ab19e2d2-0f4e-11e5-b157-080027973e8a.  
    150610 16:57:05 [ERROR] Fatal error: Can`t open and lock privilege tables: Table `mysql.host` doesn`t exist  
    150610 16:57:05 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql/rh55.pid ended  
    150610 17:04:36 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/mysql  
    /usr/local/mysql/bin/mysqld: Table `mysql.plugin` doesn`t exist  
    150610 17:04:36 [ERROR] Can`t open the mysql.plugin table. Please run mysql_upgrade to create it.  
    150610 17:04:36 InnoDB: The InnoDB memory heap is disabled  
    150610 17:04:36 InnoDB: Mutexes and rw_locks use InnoDB`s own implementation  
    150610 17:04:36 InnoDB: Compressed tables use zlib 1.2.3  
    150610 17:04:36 InnoDB: CPU does not support crc32 instructions  
    150610 17:04:36 InnoDB: Initializing buffer pool, size = 128.0M  
    150610 17:04:36 InnoDB: Completed initialization of buffer pool  
    150610 17:04:36 InnoDB: highest supported file format is Barracuda.  
    InnoDB: Log scan progressed past the checkpoint lsn 48961  
    150610 17:04:36  InnoDB: Database was not shut down normally!  
    InnoDB: Starting crash recovery.  
    InnoDB: Reading tablespace information from the .ibd files...  
    InnoDB: Restoring possible half-written data pages from the doublewrite  
    InnoDB: buffer...  
    InnoDB: Doing recovery: scanned up to log sequence number 1595695  
    150610 17:04:36  InnoDB: Starting an apply batch of log records to the database...  
    InnoDB: Progress in percents: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76  
     77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99   
    InnoDB: Apply batch completed  
    150610 17:04:37 InnoDB: 128 rollback segment(s) are active.  
    150610 17:04:37 InnoDB: 1.2.4 started; log sequence number 1595695  
    150610 17:04:37 [Note] Recovering after a crash using mysql-bin  
    150610 17:04:37 [Note] Starting crash recovery...  
    150610 17:04:37 [Note] Crash recovery finished.  
    150610 17:04:37 [ERROR] Fatal error: Can`t open and lock privilege tables: Table `mysql.host` doesn`t exist  
    150610 17:04:37 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql/rh55.pid ended

檢視mysql配置檔案:
[root@rh55 ~]# cat /etc/my.cnf

[mysqld]  
port            = 3306  
socket          = /tmp/mysql.sock  
skip-external-locking  
key_buffer_size = 16M  
max_allowed_packet = 1M  
table_open_cache = 64  
sort_buffer_size = 512K  
net_buffer_length = 8K  
read_buffer_size = 256K  
read_rnd_buffer_size = 512K  
myisam_sort_buffer_size = 8M  
datadir=/usr/local/mysql/data/mysql

解決方案:
[root@rh55 mysql]# scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data/mysql

  1. WARNING: The host `rh55` could not be looked up with resolveip.  
    This probably means that your libc libraries are not 100 % compatible  
    with this binary MySQL version. The MySQL daemon, mysqld, should work  
    normally with the exception that host name resolving will not work.  
    This means that you should use IP addresses instead of hostnames  
    when specifying MySQL privileges !  
    Installing MySQL system tables...  
    150610 17:07:10 InnoDB: The InnoDB memory heap is disabled  
    150610 17:07:10 InnoDB: Mutexes and rw_locks use InnoDB`s own implementation  
    150610 17:07:10 InnoDB: Compressed tables use zlib 1.2.3  
    150610 17:07:10 InnoDB: CPU does not support crc32 instructions  
    150610 17:07:10 InnoDB: Initializing buffer pool, size = 128.0M  
    150610 17:07:10 InnoDB: Completed initialization of buffer pool  
    150610 17:07:10 InnoDB: highest supported file format is Barracuda.  
    InnoDB: Log scan progressed past the checkpoint lsn 48961  
    150610 17:07:10  InnoDB: Database was not shut down normally!  
    InnoDB: Starting crash recovery.  
    InnoDB: Reading tablespace information from the .ibd files...  
    InnoDB: Restoring possible half-written data pages from the doublewrite  
    InnoDB: buffer...  
    InnoDB: Doing recovery: scanned up to log sequence number 1595695  
    150610 17:07:11  InnoDB: Starting an apply batch of log records to the database...  
    InnoDB: Progress in percents: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99   
    InnoDB: Apply batch completed  
    150610 17:07:11 InnoDB: 128 rollback segment(s) are active.  
    150610 17:07:11 InnoDB: Waiting for the background threads to start  
    150610 17:07:12 InnoDB: 1.2.4 started; log sequence number 1595695  
    150610 17:07:12 [Note] Recovering after a crash using mysql-bin  
    150610 17:07:12 [Note] Starting crash recovery...  
    150610 17:07:12 [Note] Crash recovery finished.  
    150610 17:07:14 [Warning] Info table is not ready to be used. Table `mysql.slave_master_info` cannot be opened.  
    150610 17:07:14 [Warning] Error while checking replication metadata. Setting the requested repository in order to give users the chance to fix the problem and restart the server. If this is a live upgrade please consider using mysql_upgrade to fix the problem.  
    150610 17:07:14 [Warning] Info table is not ready to be used. Table `mysql.slave_relay_log_info` cannot be opened.  
    150610 17:07:14 [Warning] Error while checking replication metadata. Setting the requested repository in order to give users the chance to fix the problem and restart the server. If this is a live upgrade please consider using mysql_upgrade to fix the problem.  
    150610 17:07:15 [Note] Binlog end  
    150610 17:07:15 [Note] Shutting down plugin `partition`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_FOREIGN_COLS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_FOREIGN`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_FIELDS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_COLUMNS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_INDEXES`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_TABLESTATS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_SYS_TABLES`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_INDEX_TABLE`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_INDEX_CACHE`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_CONFIG`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_BEING_DELETED`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_DELETED`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_INSERTED`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_FT_DEFAULT_STOPWORD`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_METRICS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_BUFFER_POOL_STATS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_BUFFER_PAGE_LRU`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_BUFFER_PAGE`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_CMPMEM_RESET`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_CMPMEM`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_CMP_RESET`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_CMP`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_LOCK_WAITS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_LOCKS`  
    150610 17:07:15 [Note] Shutting down plugin `INNODB_TRX`  
    150610 17:07:15 [Note] Shutting down plugin `InnoDB`  
    150610 17:07:15  InnoDB: FTS optimize thread exiting.  
    150610 17:07:15  InnoDB: Starting shutdown...  
    150610 17:07:16 InnoDB: Shutdown completed; log sequence number 1602851  
    150610 17:07:16 [Note] Shutting down plugin `PERFORMANCE_SCHEMA`  
    150610 17:07:16 [Note] Shutting down plugin `CSV`  
    150610 17:07:16 [Note] Shutting down plugin `MRG_MYISAM`  
    150610 17:07:16 [Note] Shutting down plugin `MEMORY`  
    150610 17:07:16 [Note] Shutting down plugin `MyISAM`  
    150610 17:07:16 [Note] Shutting down plugin `mysql_old_password`  
    150610 17:07:16 [Note] Shutting down plugin `mysql_native_password`  
    150610 17:07:16 [Note] Shutting down plugin `binlog`  
    OK  
    Filling help tables...  
    150610 17:07:16 InnoDB: The InnoDB memory heap is disabled  
    150610 17:07:16 InnoDB: Mutexes and rw_locks use InnoDB`s own implementation  
    150610 17:07:16 InnoDB: Compressed tables use zlib 1.2.3  
    150610 17:07:16 InnoDB: CPU does not support crc32 instructions  
    150610 17:07:16 InnoDB: Initializing buffer pool, size = 128.0M  
    150610 17:07:16 InnoDB: Completed initialization of buffer pool  
    150610 17:07:16 InnoDB: highest supported file format is Barracuda.  
    150610 17:07:17 InnoDB: 128 rollback segment(s) are active.  
    150610 17:07:17 InnoDB: 1.2.4 started; log sequence number 1602851  
    150610 17:07:17 [Note] Binlog end  
    150610 17:07:17 [Note] Shutting down plugin `partition`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_FOREIGN_COLS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_FOREIGN`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_FIELDS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_COLUMNS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_INDEXES`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_TABLESTATS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_SYS_TABLES`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_INDEX_TABLE`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_INDEX_CACHE`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_CONFIG`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_BEING_DELETED`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_DELETED`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_INSERTED`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_FT_DEFAULT_STOPWORD`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_METRICS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_BUFFER_POOL_STATS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_BUFFER_PAGE_LRU`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_BUFFER_PAGE`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_CMPMEM_RESET`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_CMPMEM`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_CMP_RESET`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_CMP`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_LOCK_WAITS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_LOCKS`  
    150610 17:07:17 [Note] Shutting down plugin `INNODB_TRX`  
    150610 17:07:17 [Note] Shutting down plugin `InnoDB`  
    150610 17:07:17  InnoDB: FTS optimize thread exiting.  
    150610 17:07:17  InnoDB: Starting shutdown...  
    150610 17:07:18 InnoDB: Shutdown completed; log sequence number 1602861  
    150610 17:07:18 [Note] Shutting down plugin `PERFORMANCE_SCHEMA`  
    150610 17:07:18 [Note] Shutting down plugin `CSV`  
    150610 17:07:18 [Note] Shutting down plugin `MRG_MYISAM`  
    150610 17:07:18 [Note] Shutting down plugin `MEMORY`  
    150610 17:07:18 [Note] Shutting down plugin `MyISAM`  
    150610 17:07:18 [Note] Shutting down plugin `mysql_old_password`  
    150610 17:07:18 [Note] Shutting down plugin `mysql_native_password`  
    150610 17:07:18 [Note] Shutting down plugin `binlog`  
    OK  
      
    To start mysqld at boot time you have to copy  
    support-files/mysql.server to the right place for your system  
      
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !  
    To do so, start the server, then issue the following commands:  
      
    ./bin/mysqladmin -u root password `new-password`  
    ./bin/mysqladmin -u root -h rh55 password `new-password`  
      
    Alternatively you can run:  
    ./bin/mysql_secure_installation  
      
    which will also give you the option of removing the test  
    databases and anonymous user created by default.  This is  
    strongly recommended for production servers.  
      
    See the manual for more instructions.  
      
    You can start the MySQL daemon with:  
    cd . ; ./bin/mysqld_safe &  
      
    You can test the MySQL daemon with mysql-test-run.pl  
    cd ./mysql-test ; perl mysql-test-run.pl  
      
    Please report any problems with the ./bin/mysqlbug script!

啟動mysql server:

[root@rh55 mysql]# bin/mysqld_safe &
[1] 16199
[root@rh55 mysql]# 150610 17:08:22 mysqld_safe Logging to `/usr/local/mysql/data/mysql/rh55.err`.
150610 17:08:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/mysql

驗證啟動成功:
[root@rh55 mysql]# netstat -an |grep 3306
tcp        0      0 :::3306                     :::*                        LISTEN