linux下用cmake編譯安裝mysql

2021-08-29 00:01:28 字數 3863 閱讀 6175

編譯

# 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...