程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 不同版本Mysql安裝

不同版本Mysql安裝

編輯:關於MYSQL數據庫

    問題的產生:在已有的Red Hat Enterprise Linux AS 3.0系統上已經運行了一套web程序,使用MySQL4, tomcat41, 現在又要求安裝一套新程序,依舊使用該tomcat41, 但數據庫變為MySQL5。

注意事項:
新的程序需要注意字符集的問題,
1)具體數據庫的權限和分組問題,
2)MySQL5下的具體數據庫從Windows直接拷貝到Linux下不好使的問題,
3)以及MySQL5需要設置密碼的問題,
4)MySQL5在Linux下對數據庫區分大小寫的問題。
5) MySQL在終端進入
MySQL>
時的用戶名和密碼問題

此外,在具體安裝mysql5的過程中,要注意將MySQL5的安裝位置(baseDir),數據庫的具體存放位置(dataDir),端口號(改為3307),進行修改,這樣才能保證兩個不同版本的數據庫的同時運行。

版本號:
MySQL v4.0.24
(1)MySQL-server-4.0.24-0.i386.rpm
(2)MySQL-clIEnt-4.0.24-0.i386.rpm
(3)MySQL-devel-4.0.24-0.i386.rpm
MySQL 5.0.51a
MySQL-5.0.51a.tar.gz

安裝MySQL v4.0.24
#rpm -qa | grep sql
查詢系統是否默認安裝了MySQL服務器
然後卸載系統默認安裝的MySQL
卸載MySQL命令如下:
#rpm -e --nodeps MySQL-3.23.58-1

安裝MySQL服務端:
#rpm -ivh MySQL-server-4.0.24-0.i386.rpm
測試服務端是否安裝成功:
#netstat -nat
查看端口3306是否打開
然後安裝MySQL客戶端
#rpm -ivh MySQL-clIEnt-4.0.24-0.i386.rpm
安裝MySQL連接包:
#rpm -ivh MySQL-devel-4.0.24-0.i386.rpm
此時MySQL4的各個安裝路徑如下:
以我們在Redhat下安裝的MySQL4.0.26數據庫為例:
(注意事項:rpm包使用的都是默認的設置,不能更改,以下均為默認設置)
1.配置文件:/etc/my.cnf
2.數據庫目錄:/var/lib/MySQL
3.啟動腳本:/etc/rc.d/init.d/MySQL
4.端口3306
5..socket文件/tmp/MySQL.socket
——————————————————————————————————————

下面安裝MySQL 5.0.51a

由於我們安裝的MySQL4.0.26的安裝包類型是rpm包,所以,需要大家注意的是,
它使用的都是默認的設置,安裝後生成的配置文件和數據庫目錄等等一系列的配置都是我們不能改變的。
因此,如果要在同一開發環境下安裝兩個數據庫的話,我們就必須處理以下這些問題:
1.配置文件安裝路徑不能相同
2.數據庫目錄不能相同
3.啟動腳本不能同名
4.端口不能相同
5..socket文件的生成路徑不能相同
依據上面的各種要求:MySQL5.0.51a.tar.gz的源碼包安裝做出以下調整:
--prefix=/usr/local/MySQL5 ### 數據庫安裝目錄
--localstatedir=/var/lib/MySQL5 ### 數據庫存放目錄
--with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all ### 字符集gbk加載和gbk_chinese_ci加載,可處理中文亂碼問題
其他的設置是對數據庫的一下優化,在此就不再贅述。

參考了一些msyql5的安裝文檔,在這裡感謝各位前輩
MySQL-5.0.51a.tar.gz解壓後的安裝詳解:

1# cd MySQL-5.0.51a
2# mkdir /usr/local/MySQL5

(這步驟中的諸多參數中,關鍵的參數已經在前面介紹了,如有不懂,請參看前面的介紹。)
3# ./configure
--prefix=/usr/local/MySQL5
--localstatedir=/var/lib/MySQL5 --with-comment=Source
--with-server-suffix=-Community
--with-mysqld-user=MySQL
--without-debug
--with-big-tables
--with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all
--with-pthread
--enable-static
--enable-thread-safe-clIEnt
--with-clIEnt-ldflags=-all-static
--with-MySQLd-ldflags=-all-static
--enable-assembler
--without-innodb
--without-ndb-debug
4# make
5# make install

6.# useradd mysql //添加 MySQL 用戶
7# cd /usr/local/MySQL5
(注意:!!!在安裝第二個數據庫時候,雖然在./configure後加上了--localstatedir=/var/lib/mysql5 但是並未在/var/lib下產生mysql5目錄,所以我們要在源碼包編譯安裝完成之後先檢查一下是否有這個目錄,如果沒有的話一定要手動創建一個命令:# mkdir /var/lib/MySQL5再執行第八步驟。)
8# bin/mysql_install_db --user=MySQL
(在確保第七步驟正確完成之後,在執行本步驟時,如果正確的話,在/var/lib/MySQL5下將會產生相應的數據庫文件。)
9# chown -R root:MySQL .       //設置權限,注意後面有一個 "."
10# chown -R mysql /var/lib/mysql5   //設置 MySQL 目錄權限
11# chgrp -R MySQL .          //注意後面有一個 "."
12# cp share/MySQL/my-huge.cnf /etc/my5.cnf
13# cp share/mysql/mysql.server /etc/rc.d/init.d/mysql5 //開機自動啟動 MySQL。
14# chmod 755 /etc/rc.d/init.d/MySQL5
15# chkconfig --add MySQL5

16以下是安裝第二個數據庫時,對啟動文件MySQL5和配置文件my5.cnf做出的必要修改。
===================================================================================
/etc/rc.d/init.d/MySQL5

修改下面的內容:

1.datadir=/var/lib/MySQL5
2.conf=/etc/my5.cnf
3.把"$bindir/MySQLd_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"替換為(雙引號中的)
"$bindir/MySQLd_safe --defaults-file=/etc/my5.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"(雙引號中的)
===================================================================================
/etc/my5.cnf

修改下面的內容:

port = 3307 ###修改相關的端口
socket文件生成路徑

把[clIEnt]和[MySQLd]中的port號都改成3307,
socket = /tmp/mysql.sock改成socket = /tmp/MySQL5.sock
[clIEnt]
#password = your_passWord
port = 3307
socket = /tmp/MySQL5.sock

# Here follows entrIEs for some specific programs

# The MySQL Server
[MySQLd]
port = 3307
socket = /tmp/MySQL5.sock
==================================================================================
17# /etc/rc.d/init.d/mysql5 start           //啟動 MySQL
18# bin/MySQLadmin -u root password "passWord_for_root" ### 設置數據庫JDBC連接的密碼
注意事項:此密碼與從終端客戶端登陸數據庫的密碼是否為同一密碼,還存在疑問。
設置終端客戶端登陸數據庫的密碼:(默認設置:用戶名:root 密碼:(空))
19# cd /usr/local/MySQL5/bin(進入數據庫安裝目錄下執行以下命令)
20# ./mysql -u root -p (登陸數據庫,以MySQL>開頭均屬數據庫內的操作,注意不要丟掉分號
mysql> use MySQL;

MySQL> UPDATE user SET Password=PASSWORD('newpassWord') where USER='root';
MySQL> FLUSH PRIVILEGES;
MySQL> exit;
21# service mysql5 stop               //關閉 MySQL

22tomcat部署文件下的修改:
修改/usr/tomcat/jetmambo/WEB-INF/classes/jdbc.propertIEs
1.3306改成3307
2.jdbc.passWord=system(注意事項:這個密碼就是數據庫JDBC連接的密碼)

修改後如下:
jdbc.driverClassName=com.MySQL.jdbc.Driver
jdbc.url=jdbc:MySQL://localhost:3307/timef3_cmd?&useUnicode=true&characterEncoding=gbk
jdbc.username=root
jdbc.passWord=system

23啟動數據庫和WEB服務器,驗證數據庫安裝是否成功
/etc/init.d/MySQL restart
/etc/init.d/MySQL5 restart
注意事項:必須保持兩個數據庫都開啟服務,否則tomcat報SQLException
/usr/tomcat/bin/catalina.sh run

補充說明:

24Linux下默認數據庫中表名不忽略大小寫,做如下設置:
/etc/my5.cnf

# The MySQL Server
[MySQLd]
lower_case_table_names = 1 ### 1為忽略大小寫 0為不忽略大小寫
port = 3307
socket = /tmp/MySQL5.sock

————————————————————————————————————
遺留問題,不知那位大俠可以解答一下:
在終端進入
>MySQL時
報:
ERROR 2002 (HY000): Can't connect to local MySQL Server through socket '/var/lib/mysql/MySQL.sock' (2)
錯誤。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved