1. 程式人生 > >Linux(CentOS6.X)安裝mysql6.5記錄

Linux(CentOS6.X)安裝mysql6.5記錄

首先執行rpm -qa|grep -i mysql檢查一下是否已經安裝過mysql

mysql-libs-5.1.73-5.el6_6.x86_64

可見已經安裝了庫檔案,應該先解除安裝,不然會出現覆蓋錯誤。注意解除安裝時要使用–nodeps選項忽略依賴關係

解除安裝老版本的庫檔案:rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps

使用wget方式直接下載rpm的bundle包,裡面包含了server、client、devel等安裝包:wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar

下載完成後解壓:tar -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar

得到

MySQL-server-5.6.36-1.el6.x86_64.rpm
MySQL-client-5.6.36-1.el6.x86_64.rpm
MySQL-devel-5.6.36-1.el6.x86_64.rpm
MySQL-shared-5.6.36-1.el6.x86_64.rpm
MySQL-test-5.6.36-1.el6.x86_64.rpm
MySQL-embedded-5.6.36-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.36-1.el6.x86_64.rpm

等rpm安裝包檔案。

接下來執行rpm安裝命令:rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm安裝server和client,可能安裝失敗,提示錯誤資訊:

warning: MySQL-server-5.6.36-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64

這都是因為缺少依賴的相關包造成的,解決辦法是通過yum直接安裝這些依賴包。
yum -y install libaio
yum -y install numactl

依賴包安裝好後再次執行rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm來安裝server和client。

附上一張完整的安裝過程圖:注意最後的安裝過程資訊,後面有用。

安裝過程

安裝成功之後,我們來啟動mysql服務。執行service mysql start。啟動成功之後,在執行mysql -uroot -p命令登入資料庫,此時提示錯誤:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

因為我們沒有密碼。Mysql 5.6及以後版本出處於安全考慮,root密碼不為空,並強制登陸之後要修改密碼。所以在MySQL的安裝過程中,會生成一個隨機密碼。但這個隨機密碼在哪呢?在這裡感謝瀟湘隱者提供的解決辦法。這時候回過頭去看我們MySQL的安裝日誌資訊中:
隨機密碼
你會看到MySQL生成了root使用者的隨機密碼,並將這個隨機密碼放置在/root/.mysql_secret中。知道這個就簡單了,執行more /root/.mysql_secret檢視檔案內容:

# The random password set for the root user at Fri Apr 21 08:16:33 2017 (local time): 4fsMZJ8tWAL6IAIJ

最後這個字串就是隨機密碼,複製下來,再次執行mysql -uroot -p命令登入,提示輸入密碼的時候貼上再回車就好了。此時我們還不能進行其它的操作,錯誤提示:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

提示必須要先修改密碼才能進行別的操作,如圖:
修改密碼
修改密碼為root123mysql> set password=password('root123');

到這裡還有個問題就是不能遠端連線到這個資料庫,因為預設是隻支援本地連結的。一下是解決這個問題的方法:
切換到mysql庫:mysql> use mysql
mysql> update user set host = '%' where user = 'root';

ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’

發現主鍵衝突了,來檢視一下這個表的資訊:
mysql> select host from user where user="root";

+————————-+
| host |
+————————-+
| % |
| 127.0.0.1 |
| ::1 |
| localhost.elasticsearch |
+————————-+
4 rows in set (0.00 sec)

原來host已經有了%這個值,所以直接執行命令
mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

開啟遠端步驟

測試一下連線:
測試