編譯
# linux下用cmake編譯安裝mysql-5.6.35
# 安裝cmake
sudo pacman -s cmake
wget
tar zxvf mysql-5.6.35.tar.gz
cd mysql-5.6.35
# 建立資料存放目錄
mkdir -p /vhs/mysql/mysql56
# 建立使用者及使用者組並指定之上的目錄,使用者及使用者組
sudo useradd -m mysql -s /sbin/nologin
sudo chown -r mysql.mysql /vhs/mysql/mysql56
# 預編譯
cmake \
-dcmake_install_prefix=/vhs/mysql/mysql56 \
-dmysql_datadir=/vhs/mysql/mysql56 \
-dsysconfdir=/vhs/mysql/mysql56/etc \
-dwith_myisam_storage_engine=1 \
-dwith_innobase_storage_engine=1 \
-dwith_archive_storage_engine=1 \
-dwith_blackhole_storage_engine=1 \
-denabled_local_infile=1 \
-ddefault_charset=utf8 \
-ddefault_collation=utf8_general_ci \
-dextra_charsets=all \
-dmysql_tcp_port=3306 \
-dmysql_unix_addr=/vhs/mysql/mysql56/tmp/mysqld.sock \
-dwith_debug=0
# 說明
# 官方
-dcmake_install_prefix=dir_name 設定mysql安裝目錄
-dmysql_unix_addr=file_name 設定監聽套接字路徑,這必須是乙個絕對路徑名。預設為/tmp/mysql.sock
-ddefault_charset=charset_name 設定伺服器的字符集。預設情況下,mysql使用latin1的(cp1252西歐)字符集。cmake/character_sets.cmake檔案包含允許的字符集名稱列表。
-ddefault_collation=collation_name 設定伺服器的排序規則。
-dwith_innobase_storage_engine=1
-dwith_archive_storage_engine=1
-dwith_blackhole_storage_engine=1
-dwith_perfschema_storage_engine=1
儲存引擎選項:myisam,merge,memory,和csv引擎是預設編譯到伺服器中,並不需要明確地安裝。
靜態編譯乙個儲存引擎到伺服器,使用-dwith_engine_storage_engine= 1
可用的儲存引擎值有:archive, blackhole, example, federated, innobase (innodb), partition (partitioning support), 和perfschema (performance schema)
-dmysql_datadir=dir_name 設定mysql資料庫檔案目錄
-dmysql_tcp_port=port_num 設定mysql伺服器監聽埠,預設為3306
# 編譯
make -j8
# 編譯出錯(自行安裝所需軟體),然後刪除下面檔案,繼續重新編譯安裝。
rm -rf cmakecache.txt
make
# 安裝
sudo make install
配置
# 初始化許可權
# 進入/vhs/mysql/mysql56/
sudo scripts/mysql_install_db --user=mysql --basedir=/vhs/mysql/mysql56/ --datadir=/vhs/mysql/mysql56/
# 修改my.cnf,如下面
nano my.cnf
# 建立
sudo mkdir /vhs/mysql/mysql56/tmp
sudo chmod 777 /vhs/mysql/mysql56/tmp
touch /vhs/mysql/mysql56/tmp/mysqld.pid
touch /vhs/mysql/mysql56/tmp/mysqld.log
# touch /vhs/mysql/mysql56/tmp/mysqld.sock
# chmod 777 /vhs/mysql/mysql56/tmp/mysqld.sock
# 啟動資料庫
# 測試的時候使用
bin/mysqld_safe &
# 已經除錯完畢,請使用服務的方式啟動,便於管理 (start stop restart)
sudo support-files/mysql.server start
# 修改mysql使用者登入密碼為root
sudo bin/mysqladmin -uroot password root
bin/mysql -uroot -proot
# 其他登入
bin/mysql -u root -p
# 註冊到系統服務
# 常見錯誤
sudo cp support-files/mysql.server /etc/init.d/mysqld
# warning: world-writable config file '/vhs/mysql/mysql56/my.cnf' is ignored
# warning: world-writable config file '/vhs/mysql/mysql56/my.cnf' is ignored
# .. * the server quit without updating pid file (/vhs/mysql/mysql56/desktop-f6lvir9.pid).
# my.cnf檔案許可權644
my.cnf檔案
[client]
port = 3306
socket = /vhs/mysql/mysql56/tmp/mysqld.sock
[mysqld]
port = 3306
bind-address = 0.0.0.0
socket = /vhs/mysql/mysql56/tmp/mysqld.sock
server_id =1
datadir = /vhs/mysql/mysql56/
#slow_query_log = 1
#慢查詢時間 超過1秒則為慢查詢
#long_query_time = 2
#slow_query_log_file = /var/log/mysql/slow.log
user=mysql
[mysqld_safe]
log-error=/vhs/mysql/mysql56/tmp/mysqld.log
pid-file=/vhs/mysql/mysql56/tmp/mysqld.pid
Linux下用cmake編譯大型C C 專案
通過cmake將c c 專案編譯成可執行檔案或靜態庫或共享庫 在專案根目錄建立cmakelists.txt檔案,及專案src目錄下建立新增編譯檔案的cmakelists.txt檔案。可以根據專案需求配置依賴庫和需要生成的檔案。編譯專案的cmakelists.txt檔案 macro add sourc...
VS下用CMake編譯OpenCV程式
想用cmake編譯opencv的初衷是。不知道由於什麼情況,在自己的筆記本上寫的opencv程式在實驗室台式電腦上編譯不過,反之亦然,在台式電腦上寫的也不能在筆記本上跑。然後每次重新建立工程什麼的也很不開心。所以。據別人說用cmake編譯很方便。所以就。有多方便呢,只要有乙個cmakelists.t...
VS下用CMake編譯OpenCV程式
想用cmake編譯opencv的初衷是。不知道由於什麼情況,在自己的筆記本上寫的opencv程式在實驗室台式電腦上編譯不過,反之亦然,在台式電腦上寫的也不能在筆記本上跑。然後每次重新建立工程什麼的也很不開心。所以。據別人說用cmake編譯很方便。所以就。有多方便呢,只要有乙個cmakelists.t...