Mysql cmake 編譯安裝、

基于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

(2)
N27_DanryN27_Danry
上一篇 2017-08-29
下一篇 2017-08-30

相關推薦

  • 編譯安裝httpd-2.4.9及新特性詳解

    前言 前面我們講解了httpd在CentOS6上(httpd-2.2)的相關功能配置,而CentOS7上采用了httpd-2.4的版本,那么httpd-2.4增加了哪些特性呢?接下來讓我們在CentOS6.6上手動編譯安裝一下httpd-2.4.9,看一下和httpd-2.2有什么不同,順便補充說一下httpd的其它功能。 環境及新特性介紹 環境介紹 系統環…

    Linux干貨 2015-04-15
  • 網絡組(Network Teaming)

    網絡組(Network Teaming) 網絡組:是將多個網卡聚合在一起的方法,從而實現容錯和提高吞吐量 網絡組不同于舊版中bonding技術,提供更好的性能和擴展性 網絡組由內核驅動和teamd守護進程實現. 多種方式runner     broadcast     roundrobin     …

    Linux干貨 2017-03-26
  • 本周學習總結

    這周我們學習了很多比較深的命令,有點燒腦,這次我總結一下sed命令。      sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(patternspace ),接著用sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的容送往屏幕。然后讀入下行,執行下一個循環。如果…

    2017-08-28
  • kickstart及引導鏡像制作

    環境:CentOS 6.7 kickstart 制作    1、centos系統安裝完成后,anaconda會根據本次系統安裝的配置,生成一個與本次安裝設置相同的kickstart文件,文件位于/root/anaconda-ks.cfg,可以使用vim對這個文件進行修改來使用。     vim anaconda-ks.…

    Linux干貨 2015-12-15
  • ?從實驗來了解grub

    實驗一為grub設置密碼 先看一看grub是怎么樣的 grub有兩個版本 grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2  Note:grub 1.x是完全重寫的只不過是保留grub 0.x的工作機制。 2.利用grub自帶命令生成密碼grub-md5-cry…

    Linux干貨 2016-06-09
  • 馬哥教育網絡班21期+第2周課程練習

    一、Linux文件管理類命令匯總 1、文件的復制命令:cp 復制命令:cp     cp [OPTION]… [-T] SOURCE DEST     cp [OPTION]… SOURCE… DI…

    Linux干貨 2016-07-29
欧美性久久久久