CentOS下MySQL 5.1升級到5.7
前言:今天在CentOS上將MySQL版本由5.1升級到5.7的時候出現了各種問題,不過經過一步步的調查解決了問題,下面就記錄一下過程,其中經曆了很多次的卸載和刪除,在這次記錄的過程中,我就按照最後成功的一次順序來記錄,對於其中可能出現的一些錯誤會做特殊的說明。
1.下載Linux的5.7版本,主要需要兩個檔案
MySQL-server-5.7.4_m14-1.el6.x86_64.rpm
MySQL-client-5.7.4_m14-1.el6.x86_64.rpm
2.備份資料庫檔案
mysqldump -uxxx -pxx databasename > databasename.sql
3.停止mysql服務
service mysql stop
4.剛開始使用的yum安裝的,使用以下語句進行卸載[plain] view plaincopyprint?yum remove mysql*
yum remove mysql*
5.然後刪除mysql舊版本已經存在的檔案或者資料,不然mysql在重新安裝後會出現各種糾結的問題。
find / -name mysql
ps -ef | grep -i mysql
rm -rf mysql****
kill -9 mysqlid
注意/usr/bin、/usr/share/、/var/lib下有很多mysql開頭的檔案,都刪除掉,還有刪除/etc目錄下的my.cnf檔案
6.如果你是rpm安裝的,可以通過以下命令進行刪除
rpm -qa | grep -i name
rpm -e mysqlxxxxx
7.卸載刪除乾淨後,再使用以下命令對下載的server和client進行安裝
rpm -ivh mysqlxxx
8.我將my.cnf中的一部分進行了最佳化,按照我們的項目需要做了調整,拿出來做為參照
[mysqld]
2 datadir=/var/lib/mysql
3 socket=/var/lib/mysql/mysql.sock
4 #user=mysql
5
6 # Disabling symbolic-links is recommended to prevent assorted security risks
7 symbolic-links=0
8 #設定2進位記錄檔目錄
9 log-bin=mysql-bin
#10行不設定的話,會報一個莫名的錯誤
10 server-id=1
11 #指定索引的緩衝區大小,4G記憶體下設定256或者384合適
12 key_buffer_size = 256M
13 #每開啟一個表,都會讀入資料到table_open_cache中,
14 table_open_cache = 256
15 #用於ORDER BY時的緩衝大小,是針對的每個串連,所以不能太大
16 sort_buffer_size = 256K
17 #對錶進行順序掃描的請求
18 read_buffer_size = 256K
19 #任意順序讀取行時
20 read_rnd_buffer_size = 512K
21 #查詢到內容向網路傳輸時
22 net_buffer_length = 8K
23 #儲存在緩衝中的線程數量,
24 thread_cache_size = 20
25 ##由於項目中一些表的增刪改相對比較頻繁,但是查詢也佔據了很大的一部分,還需要項目運行後觀察一段時間
26 query_cache_size= 8M
27 # 和cpu的核心數有2倍的關係,我使用的是雲端服務器,設定這個參數後就啟動不起來了
28 #thread_concurrency = 12
29
30 #提交事務後資料寫入磁碟的時間點,設定為2可以對沒有強烈的安全要求機制下,對速度提高很大
31 innodb_flush_log_at_trx_commit = 2
32
33 #如果使用mysql命令登入用戶端的時候報許可權錯誤或者密碼的錯誤,可以通過開啟標記跳過驗證,直接通過mysql進行串連,然後再修改使用者名稱許可權
34 #skip-grant-tables
35
36 [mysqld_safe]
37 log-error=/var/log/mysqld.log
38 pid-file=/var/run/mysqld/mysqld.pid
9.在安裝的過程中出現了mysql error 1524錯誤,沒有找出來是什麼原因,可以通過設定skip-grant-tables跳過錯誤,然後又出現了error 1045(28000)錯誤,我把8步驟中的user=mysql注釋掉了,這個過程中還出現了其他一些錯誤,暫時記不起來了,然後通過以上的設定後,再重啟mysql服務後,就可以通過mysql -uxxx -pxx進行登入了,然後又出現了一個問題error 1820,然後查資料說通過以下操作進行實現
mysql> create database ttt;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> set password = password("root");
Query OK, 0 rows affected (0.00 sec)
10.OK,終於正常了,然後通過source命令把sql檔案匯入。
--------------------------------------分割線 --------------------------------------
Ubuntu 14.04下安裝MySQL
《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF
Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 14.04下搭建MySQL主從伺服器
Ubuntu 12.04 LTS 構建高可用分布式 MySQL 叢集
Ubuntu 12.04下原始碼安裝MySQL5.6以及Python-MySQLdb
MySQL-5.5.38通用二進位安裝
--------------------------------------分割線 --------------------------------------
本文永久更新連結地址: