首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 下 MySQL 4.0 與 5.0 多版本共存安裝完整指南

     編輯:MySQL 資料庫相關知識

場景與挑戰

在 Red Hat Enterprise Linux AS 3.0 伺服器上,已運行基於 MySQL 4.0、Tomcat 4.1 的 Web 應用。新專案要求同機部署 MySQL 5.0,並共用既有 Tomcat,需解決:

  • 字元集配置(新舊專案編碼可能不同)
  • 權限、分組、密碼策略差異
  • Windows 到 Linux 的資料檔直接複製不可用
  • MySQL 5.0 在 Linux 下預設區分表名大小寫
  • 兩套實例的端口、Socket、配置檔、資料目錄、啟動腳本完全隔離

核心隔離策略

項目MySQL 4.0 (RPM)MySQL 5.0 (源碼編譯)
安裝路徑/usr (預設)/usr/local/MySQL5
資料目錄/var/lib/mysql/var/lib/mysql5
配置檔/etc/my.cnf/etc/my5.cnf
啟動腳本/etc/rc.d/init.d/mysql/etc/rc.d/init.d/mysql5
端口33063307
Socket/tmp/mysql.sock/tmp/mysql5.sock

關鍵安裝步驟 (MySQL 5.0.51a)

  1. 建立用戶與目錄
    useradd mysql
    mkdir -p /usr/local/MySQL5 /var/lib/mysql5
  2. 編譯安裝
    cd mysql-5.0.51a
    ./configure \
    --prefix=/usr/local/MySQL5 \
    --localstatedir=/var/lib/mysql5 \
    --with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all \
    --without-innodb --without-ndb-debug \
    --enable-thread-safe-client --with-big-tables \
    --with-mysqld-user=mysql
    make && make install
  3. 初始化資料庫
    cd /usr/local/MySQL5
    bin/mysql_install_db --user=mysql
  4. 權限設定
    chown -R root:mysql .
    chown -R mysql /var/lib/mysql5
    chgrp -R mysql .
  5. 配置檔與啟動腳本
    複製 share/mysql/my-huge.cnf → /etc/my5.cnf、share/mysql/mysql.server → /etc/rc.d/init.d/mysql5
    修改 my5.cnf:port=3307、socket=/tmp/mysql5.sock、datadir=/var/lib/mysql5
    修改啟動腳本 mysql5:指定 --defaults-file=/etc/my5.cnf
  6. 註冊服務並啟動
    chmod 755 /etc/rc.d/init.d/mysql5
    chkconfig --add mysql5
    service mysql5 start
  7. 設定 Root 密碼
    bin/mysqladmin -u root password 'new_pass'
    bin/mysql -u root -p -e "UPDATE mysql.user SET Password=PASSWORD('new_pass') WHERE User='root'; FLUSH PRIVILEGES;"

常見坑點與解決

  • 表名大小寫:在 my5.cnf [mysqld] 區加入 lower_case_table_names=1 忽略大小寫。
  • Socket 連線錯誤:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
    → 客戶端連線時指定 --socket=/tmp/mysql5.sock 或在 [client] 區設定 socket 路徑。
  • JDBC 連線:修改 jdbc.url 端口為 3307,加上 useUnicode=true&characterEncoding=gbk。

驗證共存

/etc/init.d/mysql restart
/etc/init.d/mysql5 restart
netstat -nat | grep -E '3306|3307'

兩端口均 LISTEN 即成功。Tomcat 啟動後測試新舊應用均正常訪問對應實例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved