CentOS下MySQL 5.1升級到5.7

來源:互聯網
上載者:User

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通用二進位安裝

--------------------------------------分割線 --------------------------------------

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.