安裝准備
1、cmake版本
5.7編譯cmake要求版本最低為2.8,當前為2.6,所以需要升級cmake版本。信息如下
cmake --version
2、BOOST庫
5.7編譯需要boost類庫,可使用 -DDOWNLOAD_BOOST=1 -DWITH_BOOST= 參數將在指定路徑查找,如未找到會指定下載並解壓到指定的路徑
tar zxvf boostXXX
tar jxvf boost_1_59_0.tar.bz2
cd boost_1_61_0
./bootstrap.sh
./b2 install
等了好久好久,中間也有很多報錯警告之類的
...failed updating 58 targets...
...skipped 12 targets...
...updated 14195 targets...
大致這樣就結束了。。
安裝后目錄:/usr/local/include
3.安裝gcc,gcc-c++,ncurses,ncurses-devel
4. 創建mysql的安裝目錄及數據庫存放目錄
#mkdir -p /opt/modules/mysql //安裝mysql目錄
#mkdir -p /opt/modules/mysql/data //存放數據庫目錄
5.創建mysql用戶及用戶組
#groupadd mysql //創建用戶組
#useradd -r -g mysql mysql //創建mysql用戶組內mysql用戶
開始安裝
解壓mysql包
cmake -DCMAKE_INSTALL_PREFIX=/opt/modules/mysql -DENABLE_DOWNLOADS=1
報錯:
1、-- Could NOT find Git (missing: GIT_EXECUTABLE)
這項應該缺少git包,yum install -y git/
2、 Boost minor version found is 61 we need 59
版本安高了,去官網上重新下了個59版本的。。再編譯安裝
3、Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.
使用參數-DENABLE_DOWNLOADS=1 自動下載
4、Performing Test HAVE_UNUSED_TYPEDEFS - Failed
好像沒事
5、Bison executable not found in PATH
yum install -y bison
make
我的天呢,等了好久好久好久。。
make install
安裝成功~
配置
1、設置目錄權限
chown -R root:mysql . 把當前目錄中所有文件的所有者所有者設為root,所屬組為mysql
chown -R mysql:mysql data
2、將mysql的啟動服務添加到系統服務中
cp support-files/mysql.server /etc/init.d/mysql
注意:主要是將mysql.server拷貝到/etc/init.d中,命名為mysql。
有的系統中,mysql.server在/opt/modules/mysql/share/mysql/mysql.server中
有的系統中,mysql.server在/opt/modules/mysql/support-files/mysql.server中
3、生成授權表
/opt/modules/mysql/bin mysql_install_db
執行: ./mysql_install_db --user=mysql
報錯:
1、[ERROR] The data directory needs to be specified.
指定了數據目錄 --datadir=/opt/modules/mysql/data/
繼續報錯:The data directory '/opt/modules/mysql/data/' already exist and is not empty.
改回之前,完整的報錯:
[WARNING]mysql_install_db is deprecated.Please consider switching to mysqld --initialize
[ERROR] The data directory needs to be specified.
大概意思: mysql_install_db 已經不再推薦使用了,建議改成 mysqld –initialize 完成實例初始化
改為:./mysqld --user=mysql --datadir=/opt/modules/mysql/data/ --basedir=/opt/modules/mysql
有報錯
[ERROR] Could not create unix socket lock file /var/lib/mysql/mysql.sock.lock.
[ERROR] Unable to setup unix socket lock file.
[ERROR] Aborting
目錄不存在或者權限不足,所以我們直接使用命令
mkdir -p /var/log/mysql/ 創建目錄
chown -R mysql:mysql /var/log/mysql/ 設置權限
重新執行:./mysqld --user=mysql --datadir=/opt/modules/mysql/data/ --basedir=/opt/modules/mysql
http://blog.csdn.net/lqx0405/article/details/48373005 新增表空間
2、[ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'
將源碼包里面的sql/share/english/errmsg.sys復制到/usr/share/mysql/errmsg.sys
生成授權表實際上是完成了mysql的初始化。你在執行這個腳本之后,mysql里就會出現名為mysql的庫。mysql庫里有常用的權限表等系統表。比如設置用戶權限的user表。
后面的參數--user所指定的用戶是你想要運行mysqld進程用戶名。這個是可變的,不一定非要是mysql。設置這個用戶以后,所有通過mysqld進程創建的文件都會屬於這個用戶。網上的教程里多用mysql用戶是為了在生產環境中更方便管理。
linux系統默認用戶(比如root)也是可以的。但是在生產環境中,一般只需要將日志的路徑(配置文件中日志的路徑),和數據文件路徑(datadir參數)設置為mysql用戶就可以了。(這個不同的公司也有不同的設置,但是簡單來說是這樣的。)
上面說的其實都是linux系統權限管理的內容。有些文件,比如你不希望其他用戶看到的文件,或者只有指定用戶可寫的文件,就可以設定成某個特殊用戶。至於你后面問的所屬組的問題。這個也是權限管理的一部分。比如說,一個文件的用戶權限是root,組權限是mysql,這樣的文件就只能root用戶和mysql組里的用戶訪問。
不設置用戶和所屬組,也並不影響使用。因為linux默認用戶是root。mysql的基本權限就都涵蓋了。
因此可以這樣理解:用戶和用戶組的作用一般是為了在生產過程中進行系統級的權限管理。
開啟mysql服務
Starting MySQL...... ERROR! The server quit without updating PID file (v

