mysql 啓動另一實例

測試環境經常有多個項目要開發和測試。爲了使項目之間的數據隔離,避免不了新啓動數據庫實例來應對不同的項目。今天記錄在5.7.26的版本下,如何實現多個實例。

1.首先新建一個目錄。這個目錄用於存放另一個實例的數據庫文件。

mkdir /var/lib/mysql_3308/data

2.複製my.cnf文件到/var/lib/mysql_3308目錄下。以便從此處開始啓動。

cp /var/mysql/my.cnf /var/lib/mysql_3308

3.更改複製過去的my.cnf的配置信息。

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[client]
port=3308
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql_3308.sock
[mysql]
default-character-set = utf8mb4

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
port = 3308
datadir=/var/lib/mysql_3308/data
socket=/var/lib/mysql/mysql_3308.sock
character_set_server=utf8mb4
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
log-error=/var/log/mysqld_3308.log
pid-file=/var/run/mysqld/mysqld_3308.pid
explicit_defaults_for_timestamp=true
lower_case_table_names=1
#log-bin=/etc/mysql/mysql-bin #開啓二進制日誌
server-id=3308  #設置server-id
#binlog-do-db = acexeym_comm
#binlog-do-db = acexeym_company
#skip-grant-tables

4.初始化數據庫文件。該命令會初始化mysql的數據庫。

mysqld --defaults-file=defaults-file=/var/lib/mysql_3308/my.cnf --initialize-insecure --user=mysql

5.將my.cnf配置文件 中的skip-grant-tables註銷掉,方便後繼配置數據庫的連接字符串。然後啓動數據庫,注意使用chmod 777 給相關目錄以權限。

/usr/sbin/mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --user=mysql

6.啓動後,連接數據庫,更新用戶的訪問權限。

UPDATE user SET Host='%',authentication_string=PASSWORD('xxxxx') WHERE User='root';

7.配置爲supervisor守護啓動。

[program:mysql_3308]
command=/usr/sbin/mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --user=mysql
;directory=  ; 執行前要不要先cd到目錄去,一般不用
priority=1                    ;數字越高,優先級越高
numprocs=1                    ; 啓動幾個進程
autostart=true                ; 隨着supervisord的啓動而啓動
autorestart=true              ; 自動重啓。。當然要選上了
startretries=10               ; 啓動失敗時的最多重試次數
exitcodes=0                   ; 正常退出代碼
stopsignal=KILL               ; 用來殺死進程的信號
stopwaitsecs=10               ; 發送SIGKILL前的等待時間
redirect_stderr=true          ; 重定向stderr到stdout

stdout_logfile_maxbytes = 1024MB
stdout_logfile_backups  = 10
stdout_logfile          = /var/run/log/mysql_3308.log
autostart=true
autorestart=true
startsecs=3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章