承接上一篇,https://www.cnblogs.com/lunyu/p/10190364.html 。編譯安裝myrocks的整個過程,特別是第2步和第7步,讓人冗長難耐。因此編譯安裝成功後省去這些步驟就顯得很可貴了。這裡,我提供了編譯安裝後的myrocks安裝包,方便myrocksdb服務的的 ...
承接上一篇,https://www.cnblogs.com/lunyu/p/10190364.html 。編譯安裝myrocks的整個過程,特別是第2步和第7步,讓人冗長難耐。因此編譯安裝成功後省去這些步驟就顯得很可貴了。這裡,我提供了編譯安裝後的myrocks安裝包,方便myrocksdb服務的的快速安裝部署。
1. 安裝必要的包
sudo yum install cmake gcc-c++ bzip2-devel libaio-devel bison \ zlib-devel snappy-devel sudo yum install gflags-devel readline-devel ncurses-devel \ openssl-devel lz4-devel gdb git
2. 安裝autoconf
yum -y install autoconf
如果不安裝,執行mysqldb的安裝步驟( ./mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data )會出現以下錯誤:
FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db: Data::Dumper
3. 安裝zstd
zstd是zstandard數據壓縮工具,由Facebook開發,該工具如果不安裝,執行第6步時會提示缺少zstd的問題。
參考頁面:https://www.howtoing.com/zstd-fast-data-compression-algorithm-used-by-facebook
執行如下幾步:
cd /usr/local git clone https://github.com/facebook/zstd.git cd zstd make sudo make install
編譯和安裝(make install)後的zstd文件產生的文件在 /usr/local/lib 下,我們需要將該目錄下的文件拷貝至 /usr/lib64 目錄下。
cd /usr/local/lib cp * /usr/lib64
如果沒有安裝zstd,則會出現以下錯誤:
/usr/local/mysql/mysql-5.6/bin/my_print_defaults: error while loading shared libraries: libzstd.so.1: cannot open shared object file: No such file or directory FATAL ERROR: Neither host 'localhost.localdomain' nor 'localhost' could be looked up with /usr/local/mysql/mysql-5.6/bin/resolveip Please configure the 'hostname' command to return a correct hostname. If you want to solve this at a later stage, restart this script with the --force option
4. 下載myrocksdb的安裝包並解壓
百度網盤鏈接:https://pan.baidu.com/s/1qmXz_FfQ1dT9-guu5mwTgA , 提取碼:93wy。
將上述地址分享的 mysql.tar.gz 文件下載下來,上傳到centos伺服器 /usr/local 路徑下並解壓。
cd /usr/local tar -zvxf mysql.tar.gz
5. 配置my.cnf文件
對mysql的配置文件 /etc/my.cnf 填入以下內容。
[client] default-character-set=utf8 [mysqld] character_set_server=utf8 basedir =/usr/local/mysql datadir =/usr/local/mysql/data socket= /usr/local/mysql/mysql-5.6.sock port =3306 server_id =1 user=mysql default_authentication_plugin=mysql_native_password rocksdb default-storage-engine=rocksdb skip-innodb default-tmp-storage-engine=MyISAM collation-server=utf8_bin log-bin binlog-format=ROW
6. 安裝資料庫
cd /usr/local/mysql/scripts ./mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7. 啟動資料庫
切換到 /usr/local /mysql/bin 目錄下,執行mysql的啟動。
cd /usr/local/mysql/bin ./mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
通過 ps –ef | grep mysql 命令查看,出現mysql的啟動進程表示啟動成功。
8. 登錄mysql
在 /usr/local/mysql/bin 目錄下,執行,
./mysql –u root –p
輸入密碼:123456
之後進行一些必要的操作。
9. 嘗試創建庫和表
創建資料庫
create database myrocks;
創建表
CREATE TABLE `linktable` ( `id1` bigint(20) unsigned NOT NULL DEFAULT '0', `id1_type` int(10) unsigned NOT NULL DEFAULT '0', `id2` bigint(20) unsigned NOT NULL DEFAULT '0', `id2_type` int(10) unsigned NOT NULL DEFAULT '0', `link_type` bigint(20) unsigned NOT NULL DEFAULT '0', `visibility` tinyint(3) NOT NULL DEFAULT '0', `data` varchar(255) NOT NULL DEFAULT '', `time` bigint(20) unsigned NOT NULL DEFAULT '0', `version` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (link_type, `id1`,`id2`) COMMENT 'cf_link_pk', KEY `id1_type` (`id1`,`link_type`,`visibility`,`time`,`version`,`data`) COMMENT 'rev:cf_link_id1_type' ) ENGINE=RocksDB DEFAULT COLLATE=utf8_bin;
10. 開放防火牆埠
這裡防火牆是cetos預設的firewall防火牆。
打開設置的埠,重啟防火牆。
firewall-cmd --zone=public --add-port=3306/tcp --permanent systemctl restart firewalld.service
11. 設置mysqld服務啟動
每次啟動服務都要執行步驟7,切換目錄很麻煩,可以執行下麵的操作,通過service啟動。
執行chkconfig管理系統服務(service)的命令行工具。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 345 mysqld on
這樣我們可以通過以下命令來重啟項目。
service mysqld restart
出現以下結果表示自動重覆mysqld服務成功。
12. 設置在任意位置登錄和導出mysql庫
只需要配置一下mysql的環境變數。
export MYSQL_HOME=/user/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH