最近在將CentOS上的MySQL升級到8時遇到了一些問題,MySQL8安裝成功后無法啟動。下面詳細介紹一下解決方法。
首先,升級MySQL之前最好備份原來的MySQL數據,以防意外情況發生。然后,按照MySQL8的安裝指南進行安裝。
$ rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm $ yum install mysql-community-server
安裝完成后,啟動MySQL服務:
$ systemctl start mysqld.service
啟動時可能會遇到一些錯誤,例如:libaio.so.1無法鏈接。這時需要安裝缺失的依賴包:
$ yum install libaio-devel
接著,使用以下命令進行安全設置:
$ mysql_secure_installation
完成上述步驟后,嘗試啟動MySQL服務,如果遇到以下錯誤:
ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
則需要進行以下操作:
$ tail /var/log/mysqld.log
通過查看日志文件,我們可以看到如下錯誤信息:
[ERROR] --initialize specified but the data directory has files in it. Aborting. [ERROR] Aborting
這是因為MySQL之前的數據和新版本不兼容,需要進行一些修復操作。清除/var/lib/mysql目錄下的文件,并使用mysql_install_db重新初始化:
$ systemctl stop mysqld.service $ mkdir /var/lib/mysql_bak $ mv /var/lib/mysql/* /var/lib/mysql_bak/ $ mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
啟動MySQL服務:
$ systemctl start mysqld.service
如果沒有錯誤,進入MySQL并檢查版本:
$ mysql -uroot -p Enter password: mysql>SELECT @@version; +-----------+ | @@version | +-----------+ | 8.0.23 | +-----------+ 1 row in set (0.00 sec) mysql>exit
如果一切正常,那么MySQL8的安裝和升級就完成了。