一江春水向東流

          做一個(gè)有思想的人,期待與每一位熱愛(ài)思考的人交流,您的關(guān)注是對(duì)我最大的支持。

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評(píng)論 :: 0 Trackbacks
          問(wèn)題的產(chǎn)生:在已有的Red Hat Enterprise Linux AS 3.0系統(tǒng)上已經(jīng)運(yùn)行了一套web程序,使用Mysql4, tomcat41, 現(xiàn)在又要求安裝一套新程序,依舊使用該tomcat41, 但數(shù)據(jù)庫(kù)變?yōu)?span id="wmqeeuq" class="hilite1">mysql5

          注意事項(xiàng):
          新的程序需要注意字符集的問(wèn)題,
          1)具體數(shù)據(jù)庫(kù)的權(quán)限和分組問(wèn)題,
          2)mysql5下的具體數(shù)據(jù)庫(kù)從windows直接拷貝到Linux下不好使的問(wèn)題,
          3)以及mysql5需要設(shè)置密碼的問(wèn)題,
          4)mysql5在linux下對(duì)數(shù)據(jù)庫(kù)區(qū)分大小寫(xiě)的問(wèn)題。
          5) mysql在終端進(jìn)入
          ?? mysql>
          ?? 時(shí)的用戶名和密碼問(wèn)題

          此外,在具體安裝mysql5的過(guò)程中,要注意將mysql5的安裝位置(baseDir),數(shù)據(jù)庫(kù)的具體存放位置(dataDir),端口號(hào)(改為3307),進(jìn)行修改,這樣才能保證兩個(gè)不同版本的數(shù)據(jù)庫(kù)的同時(shí)運(yùn)行。

          版本號(hào):
          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
          查詢系統(tǒng)是否默認(rèn)安裝了mysql服務(wù)器
          然后卸載系統(tǒng)默認(rèn)安裝的mysql
          卸載mysql命令如下:
          #rpm -e --nodeps mysql-3.23.58-1

          安裝MySQL服務(wù)端:
          #rpm -ivh MySQL-server-4.0.24-0.i386.rpm
          測(cè)試服務(wù)端是否安裝成功:
          #netstat -nat
          查看端口3306是否打開(kāi)
          然后安裝MySQL客戶端
          #rpm -ivh MySQL-client-4.0.24-0.i386.rpm
          安裝MySQL連接包:
          #rpm -ivh MySQL-devel-4.0.24-0.i386.rpm
          此時(shí)Mysql4的各個(gè)安裝路徑如下:
          以我們?cè)赗edhat下安裝的MySQl4.0.26數(shù)據(jù)庫(kù)為例:
          (注意事項(xiàng):rpm包使用的都是默認(rèn)的設(shè)置,不能更改,以下均為默認(rèn)設(shè)置)
          1.配置文件:/etc/my.cnf
          2.數(shù)據(jù)庫(kù)目錄:/var/lib/mysql
          3.啟動(dòng)腳本:/etc/rc.d/init.d/mysql
          4.端口3306
          5..socket文件/tmp/mysql.socket
          ——————————————————————————————————————

          下面安裝MySQL 5.0.51a

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

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

          1# cd mysql-5.0.51a
          2# mkdir /usr/local/mysql5

          (這步驟中的諸多參數(shù)中,關(guān)鍵的參數(shù)已經(jīng)在前面介紹了,如有不懂,請(qǐng)參看前面的介紹。)
          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
          (注意:!!!在安裝第二個(gè)數(shù)據(jù)庫(kù)時(shí)候,雖然在./configure后加上了--localstatedir=/var/lib/mysql5但是并未在/var/lib下產(chǎn)生mysql5目錄,所以我們要在源碼包編譯安裝完成之后先檢查一下是否有這個(gè)目錄,如果沒(méi)有的話一定要手動(dòng)創(chuàng)建一個(gè) 命令:# mkdir /var/lib/mysql5再執(zhí)行第八步驟。)
          8# bin/mysql_install_db --user=mysql
          (在確保第七步驟正確完成之后,在執(zhí)行本步驟時(shí),如果正確的話,在/var/lib/mysql5下將會(huì)產(chǎn)生相應(yīng)的數(shù)據(jù)庫(kù)文件。)
          9# chown -R root:mysql .       //設(shè)置權(quán)限,注意后面有一個(gè) "."
          10# chown -R mysql /var/lib/mysql5   //設(shè)置 mysql 目錄權(quán)限
          11# chgrp -R mysql .          //注意后面有一個(gè) "."
          12# cp share/mysql/my-huge.cnf /etc/my5.cnf
          13# cp share/mysql/mysql.server /etc/rc.d/init.d/mysql5 //開(kāi)機(jī)自動(dòng)啟動(dòng) mysql。
          14# chmod 755 /etc/rc.d/init.d/mysql5
          15# chkconfig --add mysql5

          16以下是安裝第二個(gè)數(shù)據(jù)庫(kù)時(shí),對(duì)啟動(dòng)文件mysql5和配置文件my5.cnf做出的必要修改。
          ===================================================================================
          /etc/rc.d/init.d/mysql5

          修改下面的內(nèi)容:

          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 &"替換為(雙引號(hào)中的)
          "$bindir/mysqld_safe --defaults-file=/etc/my5.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"(雙引號(hào)中的)
          ===================================================================================
          /etc/my5.cnf

          修改下面的內(nèi)容:

          port = 3307 ###修改相關(guān)的端口
          socket文件生成路徑

          把[client]和[mysqld]中的port號(hào)都改成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           //啟動(dòng) MySQL
          18# bin/mysqladmin -u root password "password_for_root" ### 設(shè)置數(shù)據(jù)庫(kù)JDBC連接的密碼
          ??? 注意事項(xiàng):此密碼與從終端客戶端登陸數(shù)據(jù)庫(kù)的密碼是否為同一密碼,還存在疑問(wèn)。
          ????????????? 設(shè)置終端客戶端登陸數(shù)據(jù)庫(kù)的密碼:(默認(rèn)設(shè)置:用戶名:root 密碼:(空))
          19# cd /usr/local/mysql5/bin(進(jìn)入數(shù)據(jù)庫(kù)安裝目錄下執(zhí)行以下命令)
          20# ./mysql -u root -p (登陸數(shù)據(jù)庫(kù),以mysql>開(kāi)頭均屬數(shù)據(jù)庫(kù)內(nèi)的操作,注意不要丟掉分號(hào)
          mysql> use mysql;

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

          22tomcat部署文件下的修改:
          修改/usr/tomcat/jetmambo/WEB-INF/classes/jdbc.properties
          1.3306改成3307
          2.jdbc.password=system(注意事項(xiàng):這個(gè)密碼就是數(shù)據(jù)庫(kù)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啟動(dòng)數(shù)據(jù)庫(kù)和WEB服務(wù)器,驗(yàn)證數(shù)據(jù)庫(kù)安裝是否成功
          /etc/init.d/mysql restart
          /etc/init.d/mysql5 restart
          注意事項(xiàng):必須保持兩個(gè)數(shù)據(jù)庫(kù)都開(kāi)啟服務(wù),否則tomcat報(bào)SQLException
          /usr/tomcat/bin/catalina.sh run

          補(bǔ)充說(shuō)明:

          24linux下默認(rèn)數(shù)據(jù)庫(kù)中表名不忽略大小寫(xiě),做如下設(shè)置:
          /etc/my5.cnf

          # The MySQL server
          [mysqld]
          lower_case_table_names = 1 ### 1為忽略大小寫(xiě) 0為不忽略大小寫(xiě)
          port? = 3307
          socket? = /tmp/mysql5.sock

          ————————————————————————————————————
          遺留問(wèn)題,不知那位大俠可以解答一下:
          在終端進(jìn)入
          >mysql時(shí)
          報(bào):
          ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
          錯(cuò)誤。
          ----------------------------------------------------------------
          問(wèn)題解決了
          http://www.javaeye.com/topic/203986
          非常感謝這篇文章

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

          如果不加參數(shù)-S,則在默認(rèn)目錄去找mysql.sock

          主站蜘蛛池模板: 昌黎县| 花垣县| 蚌埠市| 南岸区| 翁源县| 孟连| 毕节市| 双辽市| 东台市| 昌吉市| 手机| 武川县| 交城县| 库尔勒市| 通城县| 奉新县| 靖安县| 松原市| 积石山| 五指山市| 汝州市| 巴东县| 二连浩特市| 柳江县| 綦江县| 枞阳县| 丹凤县| 鹤峰县| 兰坪| 宜州市| 甘南县| 江津市| 扎赉特旗| 巴塘县| 九龙城区| 邵阳市| 柳州市| 沙湾县| 游戏| 泽库县| 左权县|