posts - 495,comments - 227,trackbacks - 0
          下載最新的mysql-5.5.10-linux2.6-i686.tar.gz

          shell切換到root用戶

          安裝在/usr/local目錄下面
          解壓縮文件
          $cd /usr/local
          $tar zxvf path/mysql-5.5.10-linux2.6-i686.tar.gz
          $ln -s mysql-5.5.10-linux2.6-i686 mysql
          添加用戶組
          $groupadd mysql
          給用戶組添加用戶
          $useradd -r -g mysql mysql
          給文件夾賦予用戶權限
          $cd mysql
          $chown -R mysql . (后面有點)
          $chgrp -R mysql .
          安裝數據庫
          $scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

            注釋 如果這一步遇見error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
          請給系統安裝libaio-dev
          $apt-get install libaio-dev
          安裝完成之后再次執行數據庫安裝命令

          $chown -R root .
          $chown -R mysql data
          $cp support-files/my-medium.cnf /etc/my.cnf
          啟動數據庫
          $bin/mysqld_safe --user=mysql &

          進入數據庫管理命令
          $bin/mysql -u -root -p

          自動啟動
          $cp support-files/mysql.server  /etc/init.d/mysql
          以后啟動直接輸入
          $/etc/init.d/mysql restart|start,,


          =============================================================
          使用二進制安裝的好處

          mysql安裝為什么大部分使用二進制安裝。而不是源碼手動去編譯?

          mysql使用的glibc進行開發的。glibc庫是一個底層api,所以只要是linux,都會有glibc庫。所以,mysql安裝不需要考慮環境是否符合要求。移植性很方便。直接將編譯好的二進制代碼復制到另外一個機器上,也是可以用的。

          原 理性東西:一般在linux下安裝一個軟件,不同軟件所需要的函數庫不同。于是會遇到一個現象:一個軟件復制到另外一個平臺可能無法運行。安裝軟件需要先 偵測環境就是出于此考慮。因為mysql使用的是通用的glibc函數庫。沒有對其他東西的依賴性。所以,從一個平臺復制到另外一個平臺能夠通用。并不需 要去偵測環境。直接使用編譯好的二進制即可

          手動編譯安裝,顯得步驟麻煩。基于mysql的特點,二進制安裝完全可以。

          注:mysql5.5安裝的時候,需要用到cmake命令,所以需要保證你的機器上安裝了該命令。沒有的話,還要去安裝該cmake。也顯得麻煩。我暫時不想去安裝最新版本的了。


          如果使用二進制安裝升級怎么進行?

          升級獲取的還是二進制壓縮包。那么,直接將指向目錄切換到新的目錄即可。

          不需要涉及到像php一樣,手動編譯可以達到自己定制模塊的好處。而mysql安裝的時候不需要涉及到模塊

          mysql官方建議安裝方式:二進制安裝。

          實踐過程

          大致思路就是:解壓二進制文件放到指定的目錄。然后安裝基本的數據庫,權限方面會用到。
          然后,啟動mysql就行了。

          第一步:創建一個用戶組和用戶。

          組名和用戶名的名字都為mysql。

          命令:1.groupadd mysql
                2.useradd -r -g mysql mysql


          第二步:解壓二進制壓縮包。
          一般放到"/usr/local/src"目錄下去。
          結果會變成:/usr/local/src/mysql安裝目錄

          有很多種方式。一般可以直接進去要解壓要存放的目錄。
          運行命令:tar zxvf 壓縮包源  注釋:第二個參數可以填要解壓到的位置。第二個參數不填,就會將壓縮包源解壓到運行tar命令的當前目錄。一般都是使用這種特性進行解壓:你要解壓到哪里就先進入哪里運行tar命令。




          第三步:建立一個軟鏈接。

          在"usr/local"下建立一個軟鏈接(自己定義名為mysql)。軟鏈接的目錄是為了指向"/usr/local/src/mysql安裝目錄"

          命令:ln -s /usr/local/src/mysql安裝目錄 /usr/local/mysql    參數說明:-s參數表示建立軟鏈接

          去local目錄下查看,看是否成功生成了一個軟鏈接。使用"ls -al"查看,特點是軟連接上會有個箭頭符號。

          其實這一步就是為了提供一種快捷操作的方式。其實不建立軟連接也是可以用的,為什么要這樣做?
          升級管理有用:新版本單獨建立一個目錄存放的。假如你升級mysql了。只要將這個軟連接指向的目錄修改即可。


          第四步:權限檢查與修改
          主要是保證"mysql安裝目錄"的所有者為mysql用戶,所屬組也為mysql組。

          1.chown -R mysql . //將當前目錄的所有者改為mysql用戶  要加上-R參數。這個參數表示循環遍歷子節點。子節點都起作用
          2.chgrp -R mysql . //將當前目錄的所有組改為mysql組

          常見的問題:忘記加上-R參數。結果下面節點沒有權限。啟動錯誤,訪問錯誤等等一系列的問題。




          第五步:安裝初始化數據庫
          運行mysql安裝目錄下的文件:/scripts/mysql_install_db

          命令備忘:scripts/mysql_install_db --user=mysql //這是進入mysql安裝目錄下進行運行的,所以需要輸入路徑"scripts/"
          注意:必須在安裝目錄下執行。不能切換到scripts目錄下,然后執行"./mysql_install_db --user=mysql",否則會報如下錯誤:

          FATAL ERROR: Could not find ./bin/my_print_defaults

          因為腳本mysql_install_db里面所使用的是這種形式的相對路徑"./bin/my_print_defaults",所以必須是在"mysql安裝目錄"下,才能找得到所需文件。

          第二次試驗的時候,還報出一個錯誤:./bin/my_print_defaults: cannot execute binary file




          第六步:my.cnf配置文件拷貝
          將my.cnf文件移到etc/目錄下去。
          命令:cp support-files/my-medium.cnf /etc/my.cnf






          第七步:啟動mysql


          馬上啟動mysql的命令是:bin/mysqld_safe --user=mysql & //"&"表示在后臺運行
          這里使用&的經驗備忘:執行上面命令后,一直定在一個地方。沒有任何反應了。并沒有報錯信息。還是成功的。此時使用ctrl+c。然后去看看


          之后,想讓服務器啟動的時候就跟著啟動mysql服務器,在一個目錄下放一個文件:

          cp support-files/mysql.server /etc/init.d/mysql.server
          support-files/mysql.server在二進制安裝目錄下可以找到的。












          完成后進行的步驟:
          第一步:如何查看mysql是否安裝成功。
          一個方法是:去查看3306端口是否開啟
          命令:netstat -ntl  可以列出所有偵聽的端口

          第二個方法:使用mysql命令連接一次服務器
          命令: mysql -u root

          小技巧:為了省去每次執行客戶端都要進入目錄的麻煩。將客戶端的路徑加入環境變量中去。

          shell命令:export PATH=$PATH:/usr/local/src/mysql-5.1/bin/

          export命令備忘: export 變量名=變量值,這里變量名是PATH 變量值設置成在原來的$PATH基礎上加,有多個值,那么值之間以分號":"隔開。
          這樣,在任意路徑中。都可以通過:"mysql -u 用戶名 -p" 的形式使用客戶端了。

          所遇問題總結

          第一個問題:

          問題描述:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/mysql.sock'


          問題經驗:

          不能通過 '/tmp/mysql.sock'連到服務器,而php標準配置正是用過'/tmp/mysql.sock'

          1.php.ini中可以配置通過哪個sock去連接mysql
          2.而mysql的配置文件中也可以自由配置使用哪個位置的sock文件

          錯誤提示中顯示了錯誤2002號。結合手冊如下說明:

          錯誤:2002 (CR_CONNECTION_ERROR)

          消息:不能通過套接字'%s' (%d)連接到本地MySQL服務器。


          第二個問題:權限問題。

          解決問題的經驗是:如果遇到啟動mysql錯誤。首先應該去看看權限是否有。設置對了沒。

          比如啟動使用"service mysqld start"常常看到如下錯誤提示:

          mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
          110306 23:17:20 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
          110306 23:17:20 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended

          看不懂意思。這些信息會在data/*.err文件中記錄的。不知道上述報錯信息的原因。

          查看目錄下的子節點,發現所有者和所屬組并不都是mysql。我直接設置好目錄的所有者和所屬組都是mysql后。就行了。


          ====================================================================
          個人測試成功過程:
          shell> groupadd mysql 
          shell> useradd -r -g mysql mysql
          shell> cd /usr/local
          shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
          shell> ln -s full-path-to-mysql-VERSION-OS mysql
          shell> cd mysql
          shell> chown -R mysql .
          shell> chgrp -R mysql .
          shell> scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
          shell> chown -R root .
          shell> chown -R mysql data
          # Next command is optional
          shell> cp support-files/my-medium.cnf /etc/my.cnf
          shell> bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql &
          # Next command is optional
          shell> cp support-files/mysql.server /etc/init.d/mysql.server
          啟動后的日志寫在/var/log/mysql/error.log文件下,可直接到這個文件下去查看。
          posted on 2011-10-24 19:14 SIMONE 閱讀(4425) 評論(0)  編輯  收藏 所屬分類: LINUXmysql
          主站蜘蛛池模板: 玉龙| 兴化市| 桓台县| 伊金霍洛旗| 松江区| 平陆县| 长沙市| 改则县| 卓尼县| 蕲春县| 剑川县| 西畴县| 吉木乃县| 县级市| 红河县| 百色市| 淳化县| 永善县| 彭山县| 渑池县| 佳木斯市| 深州市| 三亚市| 华宁县| 永嘉县| 甘泉县| 潜江市| 嘉义县| 揭阳市| 南宫市| 班戈县| 贵溪市| 乐山市| 扎兰屯市| 南澳县| 仁怀市| 高雄县| 关岭| 乾安县| 团风县| 会昌县|