Mysql從5.5開始,源代碼安裝不在使用configure,而是改爲cmake,所以,安裝mysql是需要先安裝cmake
rpm -ivh cmake-2.6.4-7.el5.i386.rpm
安裝前準備
groupadd mysql useradd -g mysql mysql mkdir /usr/local/mysql chown mysql.mysql /usr/local/mysql/ -R mkdir -pv /usr/local/mysql/data yum remove mysql-server mysql mysql-devel -y yum install gcc gcc-c++ ncurses-devel libtool openssl-devel -y tar zxf mysql-5.5.29.tar.gz cd mysql-5.5.29
編譯安裝
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_INNODBBASE_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 make make install
注:
cmake和configure一樣,編譯時可添加需要的參數,其語法對比如下:
configure命令 | CMake命令 |
./configure | cmake . |
./configure --prefix=/usr | cmake . -DCMAKE_INSTALL_PREFIX=/usr |
在configure中如果編譯
--with-plugins=csv,myisam,myisammrg,heap,innobase,archive,blackhole
在cmake中就需要單個的選項來進行控制
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
(csv myisam myisammrg heap默認支持,可以用“ON”來替代數字1)
如果你想除去對某種引擎的支持,
在CMake編譯選項中使用-DWITHOUT_<ENGINE>_STORAGE_ENGINE,
例如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
編譯安裝其實默認安裝了三部分:
1、mysql client 安裝了客戶端
2、mysql server 安裝了服務端
3、mysql devel 安裝了開發文件
完成配置
在源碼目錄下support-files目錄裏有很多配置文件的模版,
直接cp就能使用(當然可根據優化需求進行自己的修改配置)
cp /root/mysql-5.5.29/support-files/my-innodb-heavy-4G.cnf /etc/my.cnf vim /etc/my.cnf
在[mysqld]裏添加一行:skip-name-resolve = 1 (跳過域名解析,加快啓動速度)
#創建啓動腳本,cp後可以使用/etc/init.d/mysqlsource start啓動
cp /root/mysql-5.5.29/support-files/mysql.server /etc/init.d/mysqlsource chmod 755 /etc/init.d/mysqlsource
#初始化mysql
sh scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
#錯誤日誌文件位置(不是命令)
/usr/local/mysql/data/localhost.localdomain.err
#創建鏈接到標準路徑下(修改環境變量指定,效果一樣)
ln -s /usr/local/mysql/bin/* /usr/bin/ ln -s /usr/local/mysql/lib/* /usr/lib/ ln -s /usr/local/mysql/libexec/* /usr/local/libexec ln -s /usr/local/mysql/share/man/man1/* /usr/share/man/man1 ln -s /usr/local/mysql/share/man/man8/* /usr/share/man/man8
#啓動mysql
/etc/init.d/mysqlsource start
#mysql的一些安全設置
mysql_secure_installation
Enter current password for root (enter fornone): 輸入root密碼,沒有請回車
Set root password? [Y/n] 是否給root設置密碼
Remove anonymous users? [Y/n] 是否移走匿名用戶
Disallow root login remotely? [Y/n] 是否拒絕root遠程登陸
Remove test database and access to it? [Y/n] 是否移走test庫
Reload privilege tables now? [Y/n] 是否立即生效以上設置
附:
cmake配置mysql過程中一些主要的參數說明如下:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#安裝目錄
-DMYSQL_DATADIR=/usr/local/mysql/data \
#數據庫存放目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
#Unix socket 文件路徑
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安裝 myisam 存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安裝 innodb 存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安裝 archive 存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安裝 blackhole 存儲引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \
#安裝數據庫分區
-DENABLED_LOCAL_INFILE=1 \
#允許從本地導入數據
-DWITH_READLINE=1 \
#快捷鍵功能
-DWITH_SSL=yes \
#支持 SSL
-DDEFAULT_CHARSET=utf8 \
#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
#校驗字符
-DEXTRA_CHARSETS=all \
#安裝所有擴展字符集
-DMYSQL_TCP_PORT=3306 \
#MySQL 監聽端口
-DWIHT_ZLIB
#zlib支持
編譯MySQL的新老參數對照表:
參數值說明 | 配置選項 | CMak選項 |
TCP/IP端口 | --with-tcp-port-=3306 | -DMYSQL_TCP_PORT=3306 |
UNIX socket文件 | --with-unix-socket-path=/tmp/mysqld.sock | -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock |
啓用加載本地數據 | --enable-local-infile | -DENABLED_LOCAL_INFILE=1 |
擴展字符支持 | --with-extra-charsets=all(默認:all) | -DEXTRA_CHARSETS=all(默認:all) |
默認字符集 | --with-charset=utf8 | -DDEFAULT_CHARSET=utf8 |
默認字符校對 | --with-collation=utf8_general_ci | -DDEFAULT_COLLATION=utf8_general_ci |
Build the server | --with-server | 無 |
嵌入式服務器 | --with-embedded-server | -DWITH_EMBEDDED_SERVER=1 |
libmysqld權限控制 | --with-embedded-privilege-control | 無 |
安裝文檔 | --without-docs | 無 |
Big tables支持 | --with-big-tables, --without-big-tables | 無 |
mysqld運行用戶 | --with-mysqld-user=mysql | -DMYSQL_USER=mysql |
調試模式 | --without-debug(默認禁用) | -DWITH_DEBUG=0(默認禁用) |
GIS支持 | --with-geometry | 無 |
社區功能 | --enable-community-features | 無 |
Profiling | --disable-profiling(默認啓用) | -DENABLE_PROFILING=0(默認啓用) |
pstack | --without-pstack | 無(新版移除該功能) |
彙編字符串函數 | --enable-assembler | 無 |
構建類型 | --build=x86_64-pc-linux-gnu | 沒有等效參數 |
交叉編譯主機 | --host=x86_64-pc-linux-gnu | 沒有等效參數 |
客戶端標誌 | --with-client-ldflags=-lstdc++ | 無 |
線程安全標誌 | --enable-thread-safe-client | 無 |
註釋存儲類型 | --with-comment='string' | -DWITH_COMMENT='string' |
Shared/static binaries | --enable-shared --enable-static | 無 |
內存使用控制 | --with-low-memory | 無 |