標籤:mysql
MySQL的安裝方式:
(一)二進位格式安裝:
RPM安裝包:
OS Vendor,比如Red Hat官方提供的rpm包
MySQL官方提供的rpm包
通用二進位安裝包:
(二)源碼包編譯方式安裝:
MySQL的版本選擇:
就目前為止,一般使用5.5的居多,它既具有新版本的許多特性(就像RHEL的2.6核心具有3.x核心的特性一樣),又兼具5.1版本的使用風格。
但是目前官方在維護還有很多版本比如5.1、5.6、6.x
為毛需要編譯安裝?
由於二進位格式的包是在比較通用的平台上進行編譯完成的,所以我們需要針對自己的硬體做一些最佳化,亦或者二進位包提供了我們一些不需要的功能,但是卻少了我們需要的功能,這時我們就需要手動編譯安裝了。
編譯器:
在5.5(包括)以後預設使用cmake作為編譯器,cmake提供更加人性化的進度提示和更快的編譯速度。而且最重要特性之一是其獨立於源碼(out-of-source)的編譯功能,即編譯工作可以在另一個指定的目錄中而非源碼目錄中進行,這可以保證源碼目錄不受任何一次編譯的影響,因此在同一個源碼樹上可以進行多次不同的編譯,如針對於不同平台編譯。
在CentOS6.4上面預設提供2.6.4版本的cmake,所以可以直接yum安裝cmake。而2.8版本則需要使用epel源安裝。如果需要使用cmake源碼進行安裝,那必須先使用make,過程如下:
# tar xf cmake-2.8.8.tar.gz# cd cmake-2.8.8# ./bootstrap 不是./configure了# make # make install
編譯安裝MySQL的方法:
既然編譯器都改變了,那麼cmake的編譯命令必然與make有所不同:
# ./configure 等價於 # cmake .# ./configure --help 等價於 # cmake . -LH or ccmake . 查看協助資訊
清理此前的編譯所產生的檔案:
# make clean && rm CMakeCake.txt
編譯安裝前需要安裝一些開發包,由於是測試環境,就都安裝了:
# yum groupinstall "Server Platform Development" "Development tools" "Desktop Platform Development" "Desktop Debugging and Performance Tools" "Compatibility libraries" -y
開始安裝:
# groupadd -r mysql# useradd -g mysql -r -d /mydata/data mysql 將/mydata/data的屬主、屬組都設為mysql# tar xf mysql-5.5.33.tar.gz # cd mysql-5.5.33# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci# make # make install# chown -R .mysql /usr/local/mysql/ 將/usr/local/mysql的屬組設為mysql# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf 注意:在生產環境下如果提示覆蓋,請先備份儲存# vim /etc/my.cnfdatadir = /mydata/datainnodb_file_per_table = 1# cd /usr/local/mysql/# scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql 初始化MySQL資料庫# cp support-files/mysql.server /etc/init.d/mysqld# chmod +x /etc/init.d/mysqld# chkconfig --add mysqld# chkconfig --list mysqld# service mysqld start# ss -antpl | grep :3306# echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysqld.sh# source /etc/profile.d/mysqld.sh
替換InnoDB引擎:
InnoDB屬於Innobase公司的產品,後被oracle收購。雖然InnoDB引擎是免費的,但其熱備份工具時收費的,而且巨貴,所以Percona公司便做了一個InnoDB的升級版本XtraDB,功能更加強大,而且備份工具是免費的。為此,oracle經常升級MySQL的版本號碼,造成percona是舊版本的假象。
我們可以下載percona的資料,然後將其中的XtraDB引擎目錄拿出來並命名為innobase,然後覆蓋掉/usr/src/mysql-5.5.33/storage/innobase目錄,然後按照正常的方法按照MySQL即可。
安裝後的工作:
1、設定root密碼,刪除匿名使用者
mysql> use mysqlmysql> select user,host,password from user;mysql> UPDATE user SET password=PASSWORD(‘new_passwd‘) WHERE user=‘root‘; 第一種方式mysql> SET PASSWORD FOR [email protected]=PASSWORD(‘new_passwd2‘); 第二種方式mysql> drop user ‘‘@‘localhost‘; mysql> drop user ‘‘@‘HOSTNAME‘; mysql> drop user ‘root‘@‘::1‘; 禁止root使用IPv6登入
忘記root密碼後的操作:
# vim /etc/init.d/mysqld $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & 尋找到此行,然後修改為如下格式→儲存→重啟→修改root密碼→還原此檔案→重啟MySQL $bindir/mysqld_safe --datadir="$datadir" --skip-grant --skip-networking --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & --skip-grant 跳過授權表 --skip-networking 禁止網路登入
本文出自 “Go right on” 部落格,請務必保留此出處http://caduke.blog.51cto.com/3365689/1599124
MySQL(4)——編譯安裝MySQL-5.5.33