下載最新的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 閱讀(4419)
評論(0) 編輯 收藏 所屬分類:
LINUX 、
mysql