mysql單機多例項 MYSQL單機多例項

2021-10-19 19:15:17 字數 4905 閱讀 9310

一、建立安裝目錄

mkdir /usr/local/mysql-s-5.6.32

mkdir /usr/local/mysql-m-5.6.32

wget

tar -zxv -f mysql-5.6.32.tar.gz

二、編譯命令

1、主編引數

cmake -dcmake_install_prefix=/data/mysql-m-5.6.32 \

-dmysql_unix_addr=/data/mysql-m-5.6.32/mysql.sock \

-dsysconfdir=/data/mysql-m-5.6.32/etc \

-dmysql_datadir=/data/mysql-m-5.6.32/data \

-ddefault_charset=utf8 \

-ddefault_collation=utf8_general_ci \

-dwith_innobase_storage_engine=1 \

-dwith_archive_storage_engine=1 \

-dwith_blackhole_storage_engine=1 \

-dmysql_tcp_port=63306 \

-denable_downloads=0

2、從編譯引數

cmake -dcmake_install_prefix=/data/mysql-s-5.6.32 \

-dmysql_unix_addr=/data/mysql-s-5.6.32/mysql.sock \

-dsysconfdir=/data/mysql-s-5.6.32 \

-dmysql_datadir=/data/mysql-s-5.6.32/data \

-ddefault_charset=utf8 \

-ddefault_collation=utf8_general_ci \

-dwith_innobase_storage_engine=1 \

-dwith_archive_storage_engine=1 \

-dwith_blackhole_storage_engine=1 \

-dmysql_tcp_port=73306 \

-denable_downloads=0

重新執行配置,需要刪除cmakecache.txt檔案

rm cmakecache.txt

三、編譯

make

make install

四、修改目錄所有者和組

1、主庫:

cd /data/mysql-m-5.6.32

chown -r mysql:mysql .

2、從庫:

cd /data/mysql-s-5.6.32

chown -r mysql:mysql .

五、初始化資料庫

1、主庫:

cd /usr/local/mysql

sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysql-m-5.6.32/data/ --basedir=/data/mysql-m-5.6.32/ --defaults-file=/data/mysql-m-5.6.32/my.cnf

2、從庫:

sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysql-s-5.6.32/data/ --basedir=/data/mysql-s-5.6.32/ --defaults-file=/data/mysql-s-5.6.32/my.cnf

匯入成功後,會在 /data/mysql-s-5.6.32/ 或 /data/mysql-m-5.6.32/ (即資料庫主目錄)下自動生成乙個my.cnf 檔案,即配置檔案,將下面的舉例檔案,修改後新增進去就可以了。

[client]

character-set-server = utf8

port = 63306

socket = /data/mysql-m-5.6.32/mysql.sock

[mysqld]

user = mysql

port = 63306

socket = /data/mysql-m-5.6.32/mysql.sock

basedir = /data/mysql-m-5.6.32

datadir = /data/mysql-m-5.6.32/data

log-error = /data/mysql-m-5.6.32/mysql_error.log

pid-file = /data/mysql-m-5.6.32/mysql.pid

六、復**務檔案和新增到path

1、主服務

cp support-files/mysql.server /etc/init.d/mysqld-m

2、從服務

cp support-files/mysql.server /etc/init.d/mysqld-s

3、如果單機單映象,最好按著下面的,新增系統環境變數

cp support-files/mysql.server /etc/init.d/mysqld

vim /etc/profile

# 新增以下內容

path=/usr/local/mysql/bin:/usr/local/mysql/lib:$path

export path

source /etc/profile

七、啟動並加入開機啟動

chkconfig mysql-m on

service mysql-m start --啟動mysql

如果提示下面的錯誤:

error! the server quit without updating pid file (/data/mysql-s-5.6.32/mysql.pid).

用下面的命令啟動 sudo /etc/init.d/mysql-s start

八、檢查啟動情況

# 方法一

netstat -tulnp | grep 63306

# 方法二

mysql -u root -p 63306

# 活著sock登陸

mysql -uroot -p63306 -s /data/mysql-m-5.6.32/mysql.sock

密碼為空,如果能登陸上,則安裝成功

九、修改root密碼

在編譯後的etc目錄中

./mysqladmin -u root password '123456』 -p63306

十、相關錯誤

# 問題:

starting mysql..the server quit without updating pid file ([failed]/mysql/server03.mylinux.com.pid).

# 解決:

修改/etc/my.cnf 中datadir,指向正確的mysql資料庫檔案目錄

# 問題:

error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)

# 解決:

# 新建乙個鏈結或在mysql中加入-s引數,直接指出mysql.sock位置。

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock

/usr/local/mysql/bin/mysql -u root -s /usr/local/mysql/data/mysql.sock

# mysql問題解決:-bash:mysql:command not found

# 因為mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,

# 系統在/usr/bin下面查此命令,所以找不到了

# 解決辦法是:

ln -s /usr/local/mysql/bin/mysql /usr/bin

# 或將路徑新增到環境變數中

付編譯引數說明

引數名含意

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

denable_downloads=bool

MySQL 單機多例項

關於mysql 單機多例項的優缺點等介紹具體可以知乎一下或參考mysql單機多例項配置 實現單機多例項可以通過docker輕鬆做到,這裡主要是分享使用自帶工具mysqld multi的過程及兩個坑點 系統 ubuntu 16.04lts xenial 版本 percorna server 5.7.2...

mysql單機多例項

在資料庫伺服器上,可以架構多個mysql伺服器,進行單機多例項的讀寫分離 可以通過mysqld multi來進行多例項的管理,mysqld multi是用perl寫的指令碼,原理是通過mysql admin來進行多個資料庫的操作 多例項的配置檔案也有點不同,可以看作是多個mysql配置的集合 mys...

mysql實踐 單機多例項

最近在學習mycat原始碼,有單台雲主機上要跑多個例項的需求,參考了以下的文章 4.修改my.cnf vim usr local mysql etc my.cnf 注釋以下內容 client password your password port 3306 socket tmp mysql.sock...