一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks
          問題的產生:在已有的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
          下載地址:http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.0/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)
          錯誤。
          ----------------------------------------------------------------
          問題解決了
          http://www.javaeye.com/topic/203986
          非常感謝這篇文章

          ./mysql -uroot -p -S /tmp/mysql5.sock

          如果不加參數-S,則在默認目錄去找mysql.sock

          posted on 2008-12-23 17:05 allic 閱讀(433) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發開源數據庫學習研究
          主站蜘蛛池模板: 台南县| 武义县| 庄浪县| 南京市| 瓮安县| 华阴市| 常熟市| 静乐县| 夏河县| 伊宁县| 望都县| 武山县| 楚雄市| 南岸区| 福鼎市| 开阳县| 达尔| 利辛县| 陇西县| 磐石市| 五华县| 聂荣县| 蒙城县| 盐津县| 娱乐| 弋阳县| 简阳市| 县级市| 中卫市| 庆元县| 宁化县| 沭阳县| 来凤县| 咸宁市| 信阳市| 德安县| 永年县| 堆龙德庆县| 准格尔旗| 互助| 团风县|