LAMP之Mysql源碼配置安裝
阿新 • • 發佈:2018-03-01
groupadd pat 名稱 cal geos 所有 數據庫管理系統 fma char MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。
由於其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境
https://dev.mysql.com/doc/refman/5.7/en/source-installation.html #mysql官網,源碼安裝Mysql,依靠Cmake
下載安裝Cmake
[root@localhost1 cmake-3.9.6]# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz [root@localhost1 cmake-3.9.6]# tar zxf cmake-3.9.6.tar.gz [root@localhost1 cmake-3.9.6]# cd cmake-3.9.6 [root@localhost1 cmake-3.9.6]# ./configure [root@localhost1 cmake-3.9.6]# gmake [root@localhost1 cmake-3.9.6]# gmake install
[root@localhost1 cmake-3.9.6]# which gmake
/usr/bin/gmake
安裝Mysql之前必須要安裝的組件
yum -y install gcc* libaio* ncurses-devel groupadd mysql useradd mysql -s /sbin/nologin -M -g mysql mkdir /opt/mysql-5.7.21/data -p mkdir /opt/mysql-5.7.21/tmp -p chown -R mysql.mysql /opt/mysql-5.7.21 chmod 750 -R /opt/mysql-5.7.21
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html Mysql官網編譯參數詳解
-DCMAKE_INSTALL_PREFIX=dir_name 安裝基礎目錄。 該值可以在服務器啟動時使用該--basedir選項進行設置 。 -DMYSQL_DATADIR=dir_name MySQL數據目錄的位置。 該值可以在服務器啟動時使用該--datadir選項進行設置 。 -DMYSQL_UNIX_ADDR=file_name 服務器偵聽套接字連接的Unix套接字文件路徑。這必須是絕對路徑名稱。默認是/tmp/mysql.sock。 該值可以在服務器啟動時使用該--socket選項進行設置 。 -DDEFAULT_CHARSET=charset_name 服務器字符集。默認情況下,MySQL使用 latin1(cp1252西歐)字符集。 charset_name可以是一種 binary,armscii8, ascii,big5, cp1250,cp1251, cp1256,cp1257, cp850,cp852, cp866,cp932, dec8,eucjpms, euckr,gb2312, gbk,geostd8, greek,hebrew, hp8,keybcs2, koi8r,koi8u, latin1,latin2, latin5,latin7, macce,macroman, sjis,swe7, tis620,ucs2, ujis,utf8, utf8mb4,utf16, utf16le,utf32。允許的字符集在cmake/character_sets.cmake文件中被列為 值CHARSETS_AVAILABLE。 該值可以在服務器啟動時使用該--character_set_server選項進行設置 。 -DDEFAULT_COLLATION=collation_name 服務器整理。默認情況下,MySQL使用 latin1_swedish_ci。使用該 SHOW COLLATION語句來確定每個字符集可用的排序規則。 該值可以在服務器啟動時使用該--collation_server選項進行設置 。
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.7.21 -DMYSQL_DATADIR=/opt/mysql-5.7.21/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/opt/mysql-5.7.21/tmp/mysql.sock -DWITH_BOOST=/opt/boost這個參數是必須的 -DWITH_DEBUG=1#上面沒寫
錯誤總結:
MySQL5.7.17在cmake的時候報錯如下: 點擊(此處)折疊或打開 CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST= This CMake script will look for boost in . If it is not there, it will download and unpack it (in that directory) for you. If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80 Call Stack (most recent call first): cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST) CMakeLists.txt:455 (INCLUDE) -- Configuring incomplete, errors occurred! See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeOutput.log". See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeError.log". 解決辦法是: 1.在/usr/local下創建一個名為boost的文件夾 mkdir -p /usr/local/boost 2.進入這個新創建的文件夾然後下載boost wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz 3.解壓 tar -xvzf boost_1_59_0.tar.gz 4.繼續cmake,添加上紅色部分 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT=‘Mysqlma‘ -DWITH_READLINE=ON -DWITH_BOOST=/usr/local/boost -DSYSCONFDIR=/data/mysqldata/3306 -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
-DWITH_BOOST=path_name Boost庫是構建MySQL所必需的。這些 CMake選項可以控制庫源位置,以及是否自動下載它: -DWITH_BOOST=path_name 指定Boost庫目錄位置。也可以通過設置BOOST_ROOT或 WITH_BOOST環境變量來指定Boost位置 。 從MySQL 5.7.11開始,它 -DWITH_BOOST=system是允許的,並且表示在標準位置的編譯主機上安裝了正確版本的Boost。在這種情況下,使用的是Boost的安裝版本,而不是MySQL源代碼發行版中包含的任何版本。 -DDOWNLOAD_BOOST=bool 指定是否在指定位置不存在的情況下下載Boost源。默認是 OFF。 -DDOWNLOAD_BOOST_TIMEOUT=seconds 下載Boost庫的超時時間(秒)。默認值是600秒。 例如,如果您通常構建MySQL,將對象輸出放置在bldMySQL源代碼樹的子目錄中,則可以使用Boost構建,如下所示: mkdir bld cd bld cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost 這會導致Boost被下載到 my_boost您的主目錄下的目錄中。如果所需的Boost版本已經存在,則不進行下載。如果所需的Boost版本更改,則會下載較新的版本。 如果Boost已經在本地安裝,並且編譯器自己找到Boost頭文件,則可能不需要指定前面的CMake選項。但是,如果MySQL所需的Boost版本發生更改並且本地安裝的版本尚未升級,則可能會出現構建問題。使用CMake 選項應該給你一個成功的構建。 通過上述允許將Boost下載到指定位置的設置,當所需的Boost版本發生更改時,您需要刪除該bld文件夾並重新創建該文件夾,然後再次執行cmake步驟。否則,新的Boost版本可能無法下載,編譯可能會失敗。
http://blog.csdn.net/cryhelyxx/article/details/47610247 問題的解決
bin/mysqld --initialize --user=mysql 初始化mysql。指定用戶 --initialize會自動生成密碼
cp /opt/mysql-5.7.21/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
echo ‘export PATH=/application/mysql/bin:$PATH‘>>/etc/profile
在不知道mysql root密碼的情況下修改密碼 [root@cairui mysql]# bin/mysqld_safe --skip-grant-tables & 在mysql中輸入一下命令 update mysql.user set authentication_string=password(‘root‘) where user=‘root‘ ;
加入開機啟動 [root@cairui ~]# chkconfig mysqld on
http://www.bubuko.com/infodetail-2167283.html 不需要/etc/my.cnf的解釋
LAMP之Mysql源碼配置安裝