學習筆記----安裝MySQL

安裝MySQL

1.下載解壓源代碼包。
我的是mysql 5.1.48版本的。

2.添加mysql用戶和組
[root@tigertall mysql-5.1.48]#groupadd  mysql
[root@tigertall mysql-5.1.48]#useradd -g mysql  mysq

3.編譯安裝
[root@tigertall mysql-5.1.48]# ./configure --enable-assembler \
--with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
--with-charset=utf8 --with-collation=utf8_general_ci \
--with-extra-charsets=complex --enable-local-infile --disable-shared \
--with-plugins=all --with-mysqld-user=mysql --with-pthread \
--enable-thread-safe-client

然後,編譯安裝
[root@tigertall mysql-5.1.48]make && make install
編譯配置指令的意思是,
--enable-assembler 
  # 啓用寄存器模式
--with-client-ldflags=-all-static
  #爲客戶端編譯靜態程序
--with-mysqld-ldflags=-all-static
  #爲服務器端編譯靜態程序
--with-charset=utf8
  #數據庫編碼使用utf8,默認的是latin1,可以設置的是
  #binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
  #cp850 cp852 cp866 cp932 dec8 eucjpms euckr gb2312 gbk geostd8
  #greek hebrew hp8 keybcs2 koi8r koi8u
  #latin1 latin2 latin5 latin7 macce macroman
  #sjis swe7 tis620 ucs2 ujis utf8
--with-collation =
  #數據庫校驗規則,--with-carset要和withc-collation一起使用纔有效。
  #要想更改字符集和校對規則,要同時使用--with-charset和--with-collation選項。
  #校對規則必須是字符集的合法校對規則。參見下面的鏈接
--with-extra-charsets=complex 
  #增加對複雜編碼的支持(可選,none, complex, all)
--with-plugins=all
  #安裝所有插件,默認不安裝,可以使用一系列逗號分隔符來描述要安裝的內容。
  #可用的配置爲 none max max-no-ndb all
  #可用的插件爲 partition daemon_example
  #ftexample archive blackhole csv example federated
  #heap ibmdb2i innobase innodb_plugin myisam myisammrg
  #ndbcluster.
--with-mysqld-user=mysql 
  #指定mysql守護進程的啓動用戶
--disable-shared
  # 禁用共享庫
--with-pthread 
  #強制使用pthread庫
--enable-thread-safe-client 
  #如果客戶端使用多線程,那麼應該使用此選項以編譯線程安全的客戶端

還有一些編譯指令是,
--prefix=/usr/local/mysql  # 不說了
--with-tcp-port=3306
  #mysqld守護進程使用的端口,默認就是3306
--with-unix-socket-path=/tmp/mysql.sock
  #unix套接字庫路徑,默認是/tmp/mysql.sock
--with-debug 和 --with-debug=full 
  #生成調試代碼和庫 witout-debug關閉調試
關於字符集和編碼參見:
msql 5.1參考手冊,第10章:字符集支持

4.一些問題
a).執行編譯配置的時候報錯
/bin/rm: cannot remove `libtoolt‘: No such file or directory
網上搜尋後,解決問題。具體方法是:
在執行./configure 之前,先執行:
# autoreconf –force –install
# libtoolize –automake –force
# automake –force –add-missing
# ./configure –prefix=/usr/local/mysql/ –datadir=/var/lib/mysql
這次,不再出錯了,問題解決。(好像只要執行完第一命令後,在./configure 就不會報錯了。)

5.Mysql安裝後的設置

在Unix上安裝MySQL後,需要初始化授權表、啓動服務器,並確保服務器工作正常。
你還要讓服務器隨系統的啓動和停止自動啓動和停止。應當爲授權表中的賬戶指定密碼。
1.切換到mysql的安裝後路徑,這裏是
cd /usr/local

2.初始化授權表
運行mysql_install_db程序設置含有確定如何讓用戶連接服務器的權限的初始MySQL授權表。
如果你使用的分發版類型不能運行程序,你需要執行該步驟。
典型,只有首次安裝MySQL時,才需要運行mysql_install_db
因此如果你升級已有的安裝你可以跳過該步驟,
mysql_install_db不會覆蓋已有的授權表,因此可以在任何環境下安全運行。
要想初始化授權表, 使用下面的一個命令:
shell> bin/mysql_install_db --user=mysql
mysql_install_db腳本創建數據目錄、擁有所有數據庫權限的mysql數據庫
和可以用來測試MySQL的test數據庫。腳本爲root賬戶和匿名用戶賬戶創建授權表條目。
賬戶一開始沒有密碼。簡單說,這些權限允許MySQL root用戶執行任何操作,
允許任何人使用test名創建或使用數據庫或用test_啓動。
一定要確保由mysql登錄賬戶擁有數據庫目錄和文件,以便在以後運行時 服務器具有讀、寫訪問權限。
爲此,如果你用root用戶運行mysql_install_db,應當使用--user選項。
否則,當以mysql登錄時,應當執行腳本,你可以省略命令中的--user選項。
mysql_install_db在mysql數據庫中創建幾個表,包括user、db、host、
tables_priv、columns_priv和func以及其它。

3.啓動mysql服務器
[root@tigertall local]# bin/mysqld_safe --user=mysql &
[1] 27463
[root@tigertall local]# 100719 02:59:05 mysqld_safe Logging to '/usr/local/var/tigertall.local.com.err'.
100719 02:59:05 mysqld_safe Starting mysqld daemon with databases from /usr/local/var
一定要讓MySQL服務器使用非權限(non-root)登錄賬戶運行。
爲此,如果你以系統root運行mysql_safe,應當使用--user選項。
否則,你應當用mysql登錄到系統來執行腳本,這樣可以省略命令中的--user選項。

4.使用mysqladmin驗證服務器在運行中。
以下命令提供了簡單的測試,可檢查服務器是否已經啓動並能響應連接:
[root@tigertall local]# bin/mysqladmin version          
[root@tigertall local]# bin/mysqladmin variablesy
驗證關閉和重啓服務器:
[root@tigertall local]# bin/mysqladmin -u root shutdown
[root@tigertall local]# bin/mysqld_safe --user=mysql --log &

5.安裝自動啓動守護
[root@tigertall local]# cp /usr/local/share/mysql/mysql.server /etc/init.d/mysql
[root@tigertall local]# chmod +x /etc/init.d/mysql
使用chkconfig設置守護進程的啓動:
[root@tigertall local]#chkconfig --level 345 mysql on
在FreeBSD中,啓動腳本通常應當位於/usr/local/etc/rc.d/。
手冊的rc(8)頁內說明只有該目錄腳本的基本名匹配*.sh shell文件名模式,腳本纔會執行。
目錄內的其它文件或目錄將被忽略掉。換句話說,在FreeBSD中,應當將mysql.server
腳本安裝爲 /usr/local/etc/rc.d/mysql.server.sh以便自動啓動。
前面設置的另一種情況是,一些操作系統啓動時也使用/etc/rc.local或
/etc/init.d/boot.local來啓動其它服務。要想使用該方法啓動MySQL
,你可以在相應啓動文件後面追加一條命令:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
來安裝啓動腳本。

6.安裝配置文件
[root@tigertall local]# cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
目錄/usr/local/share/mysql下有不同的配置文件,我用的是small,
其他還有medium,huge等等,可以根據自己的情況來處理。

下面的表顯示了服務器和每個啓動腳本從選項文件讀取哪個選項組:


腳本


選項組


mysqld


[mysqld],[server],[mysqld-major-version]


mysql.server


[mysqld],[mysql.server],[server]


mysqld_safe


[mysqld],[server],[mysqld_safe]


[mysqld-major-version]意味着名爲[mysqld-5.0]的組,
[mysqld-5.1]用於版本爲5.0.x、5.1.x等的服務器。
該特性可以用來指定只被給定發佈系列的服務器讀取的選項。
爲了向後兼容,mysql.server還讀取[mysql_server]組,
mysqld_safe還讀取[safe_mysqld]組。
然而,當使用MySQL 5.1時,你應當更新選項文件,使用[mysql.server]和[mysqld_safe]組。

7.其他
到了這裏,mysql應該是可用的了,之後就是設置密碼之類的了。
其他一些常見問題,請參考mysql安裝手冊中
這篇文章也是按照手冊的指導來寫的,感覺官方的文檔真的很不錯。

8.修改root用戶密碼
[root@tigertall local]# mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
用服務器主機名替換第二個SET PASSWORD語句中的host_name。這是你指定匿名賬戶密碼的主機名。

要想使用mysqladmin爲root賬戶指定密碼,執行下面的命令:
[root@tigertall local]# mysqladmin -u root password "newpwd"
[root@tigertall local]# mysqladmin -u root -h host_name password "newpwd"
上述命令適用於Windows和Unix。用服務器主機名替換第二個命令中的host_name
不一定需要將密碼用雙引號引起來,但是你如果密碼中包含空格或專用於命令解釋的其它字符,
則需要用雙引號引起來。

你還可以使用UPDATE直接修改user表。
下面的UPDATE語句可以同時爲兩個root賬戶指定密碼:
[root@tigertall local]# mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
      ->  WHERE User = 'root'
mysql> FLUSH PRIVILEGES;

設置完密碼後,當你連接服務器時你必須提供相應密碼。
例如,如果你想要用mysqladmin關閉服務器,可以使用下面的命令:
[root@tigertall local]# mysqladmin -u root -p shutdown
Enter password: (enter root password here)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章