centos環境下配置多個版本的mysql

場景 :有業務需要需要 把原有版本的mysql 升級到 更高版本的mysql。

解決方案:爲了減輕mysql升級對業務產生的影響,可以在當前服務器下 配置更高版本的mysql(多個版本的)來過渡

處理步驟:
1、確認並梳理原有版本的數據庫和對應配置文件
如: mysql 安裝目錄:/usr/local/mysql ,mysql 存儲的數據文件; mysql sock文件 :/tmp/ mysql.sock, mysql的配置文件 :/etc/my.cnf

2、新建新的mysql 的管理賬號:
groupadd mysql3307
useradd -g mysql3307 mysql3307
3、新增安裝文件並解壓文件

     3.1 mkdir   mysql3307
      mkdir  /data/mysqldb3307
      3.2 mv /home/user/mysql-5.6.4.tar.gz /usr/mysql3307/mysql-5.6.4.tar.gz
      tar xzvf mysql-5.6.4.tar.gz && cd mysql-5.6.4
     3.3 cmake \ 
      -DCMAKE_INSTALL_PREFIX=/usr/local/mysql3307 \   
     -DMYSQL_UNIX_ADDR=/tmp/mysql3307.sock \   
     -DDEFAULT_CHARSET=utf8 \   
     -DDEFAULT_COLLATION=utf8_general_ci \   
       -DWITH_INNOBASE_STORAGE_ENGINE=1 \   
      -DWITH_ARCHIVE_STORAGE_ENGINE=1 \   
     -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \   
      -DMYSQL_DATADIR=/data/mysqldb3307 \   
      -DMYSQL_TCP_PORT=3307 \   
      -DENABLE_DOWNLOADS=1  
      3.4make && make install

4.修改mysql安裝目錄

       4.1 cd /usr/local/mysql3307  
        chown -R mysql:mysql 
     4.2 cd /data/mysqldb3307  
        chown -R mysql:mysql . 

5、同樣初始化數據庫

cd /usr/local/mysql   
scripts/mysql_install_db --user=mysql3307 --datadir=/data/mysqldb3307  --basedir=/usr/local/mysql3307

6、複製並修改配置文件

    6.1cp /usr/local/mysql3307/support-files/my-default.cnf   /etc/my3307.cnf  
    6.2、vi  my3307.cnf
           指定好對應的
 port  = 3307   --修改端口
socket  = /tmp/mysql3307.sock  --修改sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port  = 3307
socket  = /tmp/mysql3307.sock

7、啓動本次mysql服務

/usr/local/mysql3307/bin/mysqld_safe –defaults-file=/etc/my3307.cnf &

8、設置root密碼
mysqladmin -P 3307 -S/tmp/mysql3307.sock -u root password root

9、root訪問數據庫,並設置遠程操作賬號

9.1 /usr/local/mysql3307/bin/mysql -uroot -p -S/tmp/mysql3307.sock
9.2 grant all on *.* to 'mysql3307'@'%' identified by 'mysql3307';

10、設置啓動腳本並加入啓動服務中

目前操作沒有操作成功,主要發現的問題是,儘管調整了my.cnf,但是指向的mysql文件還是會不準確,導致id_logfile 生成會出問題。理論上應該是可行,也許是讀取my.cnf存在緩存更新(本服務器重啓影響有點大)。同時mysql啓動都是需要開啓一個新的進程的,因此 如果設置自動啓動服務的話,還需要注意
lockdir=‘/var/lock/subsys‘ #mysql進程鎖
lock_file_path=”$lockdir/mysql3307”,
再更新my.cnf 和 進程鎖之後 再複製到 /etc/init.d/下,嘗試啓動看是否可以成功。

其它問題:

問題1:
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).
解決:
修改/etc/my.cnf 中datadir,指向正確的mysql數據庫文件目錄

問題2:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
解決:
新建一個鏈接或在mysql中加入-S參數,直接指出mysql.sock位置。
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock

/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock

MySQL問題解決:-bash:mysql:command not found
因爲mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,
系統在/usr/bin下面查此命令,所以找不到了
解決辦法是:
ln -s /usr/local/mysql/bin/mysql /usr/bin 做個鏈接即可

問題3:修改root密碼 增加安全性
mysqladmin -u root password ‘123456’
注:也可運行安全設置腳本,修改MySQL用戶root的密碼,同時可禁止root遠程連接,移除test數據庫和匿名用戶。
/usr/local/mysql/bin/mysql_secure_installation

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章