基于cmake的mysql安裝
1.1 前言
從mysql5.5起,mysql源碼安裝的編譯工具configure開始向cmake過渡。安裝方式和之前的略有不同。在這里簡單介紹總結下。 安裝之前,檢查下GNU make, GCC, Perl, libncurses5-dev,cmake-2.8.4是否都已經安裝,如果沒有安裝,用yum install 安裝補全
1.2 安裝Cmake
進入源代碼目錄
tar zxvf cmake-2.8.4.tar.gz
安裝
cd cmake-2.8.4 ./bootstrap gmake gmake install
1.3 cmake簡介
CMake 是"cross platform make"的縮寫。它是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。和之前configure的語法對比如下重新編譯時,需要清除舊的對象文件和緩存信息
對于configure 需要執行如下命令
make clean
對于cmake,則需要執行如下命令
rm -f CMakeCache.txt
安裝選項的對比如下:
CMAKE_INSTALL_PREFIX值是安裝的基本目錄,其他cmake選項值是不包括前綴,是相對路徑名,絕對路徑包括CMAKE_INSTALL_PREFIX路徑。
configure編譯插件選項
--with-plugins=csv,myisam,myisammrg,heap,innobase, archive,blackhole
在cmake中沒有直接對應的相同選項。對于csv,myisam,myisammrg,heap在cmake中是不需要明確指定存儲引擎的名稱,因為它們是強制性安裝。
可以使用以下選擇來安裝innodb,archive,blackhole存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 (1可以使用on代替)
1.4 安裝bison-2.5
進入源代碼目錄
解壓縮
tar zxvf bison-2.5.tar.gz
安裝
cd bison-2.5 ./configure make make install
1.5 Mysql安裝
創建mysql用戶和組
/usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql mkdir /usr/local/mysql mkdir /usr/local/mysql/data
解壓縮進入安裝目錄
tar xvf mysql-5.5.27.tar.gz cd mysql-5.5.27
編譯
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_USER=mysql
安裝
Make&&make install
1.6 安裝后
1.6.1 鏈接文件
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
不執行這一步,運行時可能如下錯誤
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
1.6.2 設置PATH環境變量
Vi /etc/profile
在profile最后加上
export PATH=”/usr/local/mysql/bin:$PATH”
保存后
source /etc/profile
1.6.3 配置參數文件
cd support-files cp my-large.cnf /etc/my.cnf
編輯my.cnf,加入以下內容
basedir = /usr/local/mysql datadir = /usr/local/mysql/data log-error = /usr/local/mysql/data/mysql_error.log pid-file = /usr/local/mysql/data/mysql.pid socket =/usr/local/mysql/data/mysql.socket //如果已經有,則修改目錄為mysql的數據目錄,此處是/usr/local/mysql/data
1.6.4 設置權限
cd /usr/local/mysql chown –R mysql . chgrp –R mysql .
1.6.5 mysql 初始化安裝
cd /usr/local/mysql/ scripts/mysql_install_db \ --defaults-file=/etc/my.cnf \ --basedir=/usr/local/mysql \ --user=mysql \
如果產生錯誤like:‘WARNING: The host ‘*‘ could not be looked up with resolveip’
執行時加上 –force 選項
1.6.6 修改權限
將安裝目錄所有權改為root,數據目錄的所有權改為你運行mysqld的用戶
cd /usr/local/mysql chown -R root . chown -R mysql data
1.7 配置服務
配置服務
cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 345 mysqld on
1.8 啟動與停止 mysql
systemctl start mysqld systemctl stop mysqld
1.9 設置Mysql用戶賬號密碼
mysql安裝后默認生成兩個帳號:一個是root,未設置密碼,可以從本機登錄到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登錄,未提供用戶名的連接都將假定為此帳號。這樣的設置存在著安全隱患,按下面的步驟進行更改。
1) 修改root的密碼
執行命令:/usr/local/mysql/bin/mysqladmin –u root –p舊密碼 password 新密碼或者用root登錄數據庫 mysql –u root 登錄以后執行 Mysql>set password for ‘root’@’hostname’=password(‘新密碼’);或者執行 Mysql>update mysql.user set password=password(‘新密碼’) —>where user = ‘root’ and host =’hostname’; 如果不知道hostname,可先執行select host,user from mysql.user where user=’root’
2) 刪除匿名用戶
Root 登錄后執行
mysql> delete from mysql.user where user=’’ ; 刪除用戶名為空的記錄 mysql> delete from mysql.user where password=’’ ; 刪除密碼為空的記錄
3) 修改完用戶權限以后,執行
Mysql> flush privileges; 因為MySQL啟動后,所有用戶權限都是加載到內存中的;但有些權限更新操作不會刷新到內存中,這樣只有下次啟動時才生效,如果直接update mysql.user來修改密碼等;flush privileges 強制讓MySQL重新加載權限,這樣剛才修改的就馬上生效了。
4) 添加用
1.10 my.cnf 配置文件修改
在my.cnf文件client下增加user, password。 修改socket路徑,為真實路徑。
原創文章,作者:N27_Danry,如若轉載,請注明出處:http://www.www58058.com/85636