日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS 7 源码编译MariaDB 5.5.46

發(fā)布時間:2024/4/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS 7 源码编译MariaDB 5.5.46 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

預(yù)備知識:
?? ?MySQL/MariaDB的源碼編譯需要借助于:cmake:
?? ?cmake的重要特性之一是其獨(dú)立于源碼(out-of-source)的編譯功能,即編譯工作可以在另一個指定的目錄中
?? ?而非源碼目錄中進(jìn)行,這可以保證源碼目錄不受任何一次編譯的影響,因此在同一個源碼樹上可以進(jìn)行多次
?? ?不同的編譯,如針對于不同平臺編譯。

cmake基礎(chǔ)簡介:
?? ??? ?使用cmake編譯mariadb-5.5
?? ??? ?cmake指定編譯選項的方式不同于make,其實現(xiàn)方式對比如下:
?? ??? ?./configure?????????? cmake .
?? ??? ?./configure --help??? cmake . -LH or ccmake .

?? ??? ?指定安裝文件的安裝路徑時常用的選項:
?? ??? ?-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
?? ??? ?-DMYSQL_DATADIR=/data/mysql
?? ??? ?-DSYSCONFDIR=/etc

?? ??? ?默認(rèn)編譯的存儲引擎包括:csv、myisam、myisammrg和heap。若要安裝其它存儲引擎,可以使用類似如下編譯選項:
?? ??? ?-DWITH_INNOBASE_STORAGE_ENGINE=1
?? ??? ?-DWITH_ARCHIVE_STORAGE_ENGINE=1
?? ??? ?-DWITH_BLACKHOLE_STORAGE_ENGINE=1
?? ??? ?-DWITH_FEDERATED_STORAGE_ENGINE=1

?? ??? ?若要明確指定不編譯某存儲引擎,可以使用類似如下的選項:
?? ??? ?-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
?? ??? ?比如:
?? ??? ?-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
?? ??? ?-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
?? ??? ?-DWITHOUT_PARTITION_STORAGE_ENGINE=1

?? ??? ?如若要編譯進(jìn)其它功能,如SSL等,則可使用類似如下選項來實現(xiàn)編譯時使用某庫或不使用某庫:
?? ??? ?-DWITH_READLINE=1
?? ??? ?-DWITH_SSL=system
?? ??? ?-DWITH_ZLIB=system
?? ??? ?-DWITH_LIBWRAP=0

?? ??? ?其它常用的選項:
?? ??? ?-DMYSQL_TCP_PORT=3306
?? ??? ?-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
?? ??? ?-DENABLED_LOCAL_INFILE=1
?? ??? ?-DEXTRA_CHARSETS=all
?? ??? ?-DDEFAULT_CHARSET=utf8
?? ??? ?-DDEFAULT_COLLATION=utf8_general_ci
?? ??? ?-DWITH_DEBUG=0
?? ??? ?-DENABLE_PROFILING=1

?? ??? ?如果想清理此前的編譯所生成的文件,則需要使用如下命令:
?? ??? ?make clean
?? ??? ?rm CMakeCache.txt

#######################################################################

????????????????????????????????OK,現(xiàn)在正式開始

#######################################################################

1、安裝依賴包:

????#?yum?install?ncurses-devel?openssl-devel?libevent-devel?jemalloc-devel?cmake

?? ?#jemalloc-devel 在epel源中,其他的都在base源中已提供;


??? # cmake也可以使用源碼進(jìn)行編譯安裝:
?? ?cmake是一個跨平臺編譯器:

????????#?tar?xf?cmake-2.8.8.tar.gz#?cd?cmake-2.8.8#?./bootstrap#?make?#?make?install


2、安裝開發(fā)環(huán)境:
?? ?# yum groupinstall "Development Tools" "Server Platform Development"

?? ?新添磁盤,建立LVM作為mysql的數(shù)據(jù)目錄:

????#?fdisk?-l?/dev/sdbDisk?/dev/sdb:?53.7?GB,?53687091200?bytes,?104857600?sectorsUnits?=?sectors?of?1?*?512?=?512?bytesSector?size?(logical/physical):?512?bytes?/?512?bytesI/O?size?(minimum/optimal):?512?bytes?/?512?bytesDisk?label?type:?dosDisk?identifier:?0x6e65abc7Device?Boot??????Start?????????End??????Blocks???Id??System/dev/sdb1????????????2048????41945087????20971520???8e??Linux?LVM

?? ?#######################################################################

??? #創(chuàng)建邏輯卷:

????????#?pvcreate?/dev/sdb1#?vgcreate?myvg?/dev/sdb1#?lvcreate?-L?10G?-n?mydata?/dev/myvg

?? ?#格式化邏輯卷:
?? ???

?#mke2fs?-t?ext4?/dev/myvg/mydata

?? ?#在fstab文件中添加為開機(jī)自動掛載:

????????#?vim?/etc/fstab/dev/mapper/centos-root?/???????????????????????xfs?????defaults????????0?0UUID=daffae2e-9598-4d9c-807e-c47a2d07d96a?/boot???????????????????xfs?????defaults????????0?0/dev/mapper/centos-home?/home???????????????????xfs?????defaults????????0?0/dev/mapper/centos-swap?swap????????????????????swap????defaults????????0?0/dev/myvg/mydata????????/mydata/data????????????????????ext4????defaults????????0?0

######################################################################

3、編譯安裝MariaDB:

????#?groupadd?-r?-g?306?mysql#?useradd?-r?-g?306?-u?306?mysql#?id?mysqluid=306(mysql)?gid=306(mysql)?groups=306(mysql)#?tar?xvf?mariadb-5.5.46.tar.gz?#?cd?mariadb-5.5.46/#?cmake?.?-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb?-DMYSQL_DATADIR=/mydata/data?-DSYSCONFDIR=/etc?-DWITH_INNOBASE_STORAGE_ENGINE=1?-DWITH_ARCHIVE_STORAGE_ENGINE=1?-DWITH_BLACKHOLE_STORAGE_ENGINE=1?-DWITH_READLINE=1?-DWITH_SSL=system?-DWITH_ZLIB=system?-DWITH_LIBWRAP=0?-DMYSQL_UNIX_ADDR=/tmp/mysql.sock?-DDEFAULT_CHARSET=utf8?-DDEFAULT_COLLATION=utf8_general_ci#?make?#?make?install

4、初始化數(shù)據(jù)庫:
?

???#?cd?/usr/local/mysql/#?chown?-R?mysql:mysql?*#?./scripts/mysql_install_db?--datadir=/mydata/data?--user=mysql#?chown?-R?root?*

5、提供腳本:

????#?cd?/usr/local/mysql/#?cp?support-files/mysql.server?/etc/rc.d/init.d/mysqld?#?chmod?+x?/etc/rc.d/init.d/mysqld#?chkconfig?mysqld?on#?chkconfig?--list

6、提供配置文件:

????#?cp?support-files/my-large.cnf?/etc/my.cnf#?vim?/etc/my.cnf#在文件中添加下述四行:thread_concurrency?=?4datadir?=?/mydata/datainnodb_file_per_table?=?ONskip_name_resolve?=?ON

7、提供二進(jìn)制文件,庫文件,頭文件,man手冊:
?? ?提供二進(jìn)制文件:
??

??????#?echo?"export?PATH=/usr/local/mysql/bin:$PATH"?>?/etc/profile.d/mysql.sh#?.?/etc/profile.d/mysql.sh

?? ?提供庫文件:
?? ???

?#?echo?"/usr/local/mysql/lib/"?>?/etc/ld.so.conf.d/mysql.conf

?? ?提供頭文件:
?? ??

???#?ln?-sv?/usr/local/include/?/usr/include/mysql

?? ?提供man手冊:

????????#?echo?"MANPATH?/usr/local/mysql"?>>?/etc/man.conf#?man?-M?/usr/local/mysql/man?mysqld?????#讓man手冊立刻生效為最新;

8、啟動mysql服務(wù),連接MariaDB:

????#?service?mysqld?start[root@localhost?~]#?ss?-tnl?|?grep?:3306LISTEN?????0??????50????????????????????????*:3306?????????????????????*:*??#?mysql

初始化MariaDB:
1、初始化第一個操作
?? ?配置文件my.cnf
?? ??? ?集中式的配置:多個應(yīng)用程序共用的配置文件:
?? ??? ??? ?[mysqld]
?? ??? ??? ?[mysqld_safe]
?? ??? ??? ?[clent]

?? ?# mysqld --help --verbose | head -20
?? ??? ?Default options are read from the following files in the given order:
?? ??? ?/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
?? ?# 此處說明了,mysql配置文件的加載順序;

?? ?使用配置文件的方式:
?? ??? ?(1)它一次查找每個需要查找的文件,結(jié)果是所有文件的并集;
?? ??? ?(2)如果某參數(shù)在多個文件中出現(xiàn)多次,后讀取的最終生效;
?? ?# /usr/local/mysql/bin/mysqld --help --verbose
?? ??? ?(1)顯示mysqld程序啟動時可用的選項,通常都是長選項;
?? ??? ?(2)顯示mysqld的配置文件中可用的服務(wù)變量;
?? ??? ??? ?mysql> SHOW GLOBAL VARIABLES;
?? ??? ??? ?msyql> SHOW SESSION VARIABLES;

2、初始化第二個操作:
?? ?#查看已存在的所有用戶:
?? ?mysql> SELECT Host,User,Password FROM mysql.user;
?? ?(1)刪除所用匿名用戶:
?? ??? ?mysql> DROP USER ''@'localhost';
?? ??? ?mysql> DROP USER ''@'localhost.localdomain';
?? ??? ?mysql> DROP USER ''@'127.0.0.1';
?? ?(2)給所有的root用戶設(shè)定密碼:
?? ??? ?第一種方式:
?? ??? ??? ?mysql> SET PASSWORD FOR root@127.0.0.1 = PASSWORD('kalaguiyin');
?? ??? ?第二種方式:
?? ??? ??? ?mysql> USE mysql;
?? ??? ??? ?mysql> UPDATE user SET PASSWORD = PASSWORD('kalaguiyin') WHERE user = 'root';
?? ??? ??? ?mysql> FLUSH PRIVILEGES;
?? ??? ?第三種方式:
?? ??? ??? ?# mysqladmin -uroot -hlocalhost password 'kalaguiyin' -p
?? ??? ??? ??? ?#按提示輸入密碼即可修改成功;-h 可用指定遠(yuǎn)程服務(wù)器的IP地址;
?? ??? ??? ?# mysqladmin -uroot -hlocalhost -p flush-privileges;

OK,此時使用mysql命令再次登錄數(shù)據(jù)庫時,就需要登錄密碼了:
?? ?例如:# mysql -h127.0.0.1 -uroot -p


學(xué)習(xí)過程中的記錄,請各位高手指下留情!


補(bǔ)充:

補(bǔ)充,在CentOS 7 上已經(jīng)不習(xí)慣使用service mysqld start的方式來啟動服務(wù):
故使用systemctl方式啟動:

#?vim?/usr/lib/systemd/mysqld.service#?Don't?forget?to?reload?systemd?daemon?after?you?change?unit?configuration:#?#?root>?systemctl?--system?daemon-reload#[Unit]Description=MariaDB?database?serverAfter=syslog.targetAfter=network.target#[Service]Type=simpleUser=mysqlGroup=mysql##?Note:?we?set?--basedir?to?prevent?probes?that?might?trigger?SELinux?alarms,ExecStart=/usr/local/mysql/bin/mysqld_safe?--basedir=/usr/local/mysql##?Give?a?reasonable?amount?of?time?for?the?server?to?start?up/shut?downTimeoutSec=300##?Place?temp?files?in?a?secure?directory,?not?/tmpPrivateTmp=false#[Install]WantedBy=multi-user.target#?systemctl?daemon-reload

#此時便可以使用systemctl管理mysqld服務(wù)了:

#?systemctl?start?mysqld.service [root@localhost?systemd]#?systemctl?stop?mysqld.service? [root@localhost?systemd]#?ss?-tnlState???????Recv-Q?Send-Q??????????????????Local?Address:Port????????????????????Peer?Address:Port?LISTEN??????0??????128?????????????????????????????????*:22?????????????????????????????????*:*?????LISTEN??????0??????100?????????????????????????127.0.0.1:25?????????????????????????????????*:*?????LISTEN??????0??????128????????????????????????????????:::80????????????????????????????????:::*?????LISTEN??????0??????128????????????????????????????????:::22????????????????????????????????:::*?????LISTEN??????0??????100???????????????????????????????::1:25????????????????????????????????:::*?????LISTEN??????0??????128????????????????????????????????:::443???????????????????????????????:::*????? [root@localhost?systemd]#?systemctl?start?mysqld.service? [root@localhost?systemd]#?ss?-tnlState???????Recv-Q?Send-Q??????????????????Local?Address:Port????????????????????Peer?Address:Port?LISTEN??????0??????50??????????????????????????????????*:3306???????????????????????????????*:*?????LISTEN??????0??????128?????????????????????????????????*:22?????????????????????????????????*:*?????LISTEN??????0??????100?????????????????????????127.0.0.1:25?????????????????????????????????*:*?????LISTEN??????0??????128????????????????????????????????:::80????????????????????????????????:::*?????LISTEN??????0??????128????????????????????????????????:::22????????????????????????????????:::*?????LISTEN??????0??????100???????????????????????????????::1:25????????????????????????????????:::*?????LISTEN??????0??????128????????????????????????????????:::443???????????????????????????????:::*


轉(zhuǎn)載于:https://blog.51cto.com/kalaguiyin/1712948

總結(jié)

以上是生活随笔為你收集整理的CentOS 7 源码编译MariaDB 5.5.46的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。