mysql 5.7 配置多实例 — 独立配置文件方式
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
使用獨立配置文件來實現(xiàn) mysql 的單機多實例
一下教程皆以已在 /usr/local 下安裝了 mysql 為說明
我們將在原 3306 實例的基礎上新建 3307 和 3308 兩個實例
1、創(chuàng)建實例目錄
[root@localhost ~]# mkdir /usr/local/mysql{3307,3308}/data -p [root@localhost ~]# chown mysql.mysql /usr/local/mysql{3307,3308} -R2、初始化數(shù)據(jù)目錄
# 這里我們使用 --initialize-insecure 來讓生成的新實例的數(shù)據(jù)庫密碼為空 [root@localhost ~]# mysqld --no-defaults \ --initialize-insecure \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql3307/data \ --user=mysql \ --explicit_defaults_for_timestamp[root@localhost ~]# mysqld --no-defaults \ --initialize-insecure \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql3308/data \ --user=mysql \ --explicit_defaults_for_timestamp3、分配獨立配置文件
這里簡單說一下,mysql 的多實例是通過不同的配置創(chuàng)建多個進程,basedir 是一樣的,實例擁有獨立的配置文件和數(shù)據(jù)目錄 datadir,而 mysql 加載配置的過程為:
/etc/my.cnf >?basedir/my.cnf >?datadir/my.cnf
?我們需要把實例的配置文件隔離開,這里將配置文件放在每個?datadir 下(在 etc 或 basedir 下就不要存在 my.cnf 了,當然配置些全局的參數(shù)在里面試沒問題的,這里我們?yōu)榱朔奖憔筒桓闳峙渲昧?#xff0c;每個實例都是絕度的單獨配置文件),待會我們還要修改 mysql 的服務控制腳本,將實例注冊到系統(tǒng)服務中,方便使用 service / systemctl 進行管理
# 各實例的配置文件 cp /usr/local/mysql/support-files/my.cnf /usr/local/mysql/data cp /usr/local/mysql/support-files/my.cnf /usr/local/mysql3307/data cp /usr/local/mysql/support-files/my.cnf /usr/local/mysql3308/data配置示例:以 3308 為例,其他靈活更改就好
[client] port = 3308 socket = /tmp/mysql3308.sock[mysqld] port = 3308 #注意 socket = /tmp/mysql3308.sock #注意 datadir = /usr/local/mysql3308/data #注意 skip-external-locking key_buffer_size = 32M max_allowed_packet = 1M table_open_cache = 128 sort_buffer_size = 768K net_buffer_length = 8K read_buffer_size = 768K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M thread_cache_size = 16 query_cache_size = 16M tmp_table_size = 32Mlog-error = /usr/local/mysql3308/mysql3308_error.log #注意 pid-file = /usr/local/mysql3308/mysql3308.pid #注意explicit_defaults_for_timestamp = true #skip-networking max_connections = 100 max_connect_errors = 5 open_files_limit = 65535log-bin=mysql-bin binlog_format=mixed server-id = 1 expire_logs_days = 10 early-plugin-load = ""default_storage_engine = InnoDB innodb_data_home_dir = /usr/local/mysql3308/data #注意 innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /usr/local/mysql3308/data #注意 innodb_buffer_pool_size = 128M innodb_log_file_size = 32M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50[mysqldump] quick max_allowed_packet = 16M[mysql] no-auto-rehash[myisamchk] key_buffer_size = 32M sort_buffer_size = 768K read_buffer = 2M write_buffer = 2M[mysqlhotcopy] interactive-timeout把加載獨立配置寫入控制腳本,還有一種方法是直接用 mysqld_safe 命令去加載配置文件進行啟動,用起來麻煩...關閉或者reload還得用 mysqladmin命令,我也貼出來吧,大家自行決定用哪一種
1、注冊到系統(tǒng)服務中,方便使用 service 管理
# 各實例的控制腳本 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql # 可能已經存在 自行決定是否覆蓋 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql3307 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql3308# 配置各實力的服務腳本 [root@localhost local]# vi /etc/init.d/mysql3308 # 修改如下 basedir=/usr/local/mysql datadir=/usr/local/mysql3308/data# 在 283 行有(靈活尋找 不同版本可能會 +- 若干行) $bindir/mysqld_safe --datadir="$datadir" ..... # 修改如下,即為啟動指定加載的配置文件 $bindir/mysqld_safe --defaults-file="$datadir/my.cnf" --datadir="$datadir" .....其他的實例請對應靈活修改
2、或者你可以直接使用 msyqld_safe?命令方式
# 使用 mysqld_safe 命令加載指定的配置文件啟動 [root@localhost ~]# mysqld_safe --defaults-file=/usr/local/mysql3308/data/my.cnf >/dev/null 2>&1 & # 使用 mysqladmin 命令 shutdown 或 reload [root@localhost ~]# mysqladmin -u root -p -S /tmp/mysql3308.sock shutdown|reload4、啟動實例
[root@localhost ~]# service mysql start [root@localhost ~]# service mysql3307 start [root@localhost ~]# service mysql3308 start[root@localhost ~]# service mysql status [root@localhost ~]# service mysql3307 status [root@localhost ~]# service mysql3308 status[root@localhost ~]# service mysql stop|restart [root@localhost ~]# service mysql3307 stop|restart [root@localhost ~]# service mysql3308 stop|restart5、修改初始密碼
# 原密碼為空 設置新密碼為 123456 [root@localhost ~]# mysqladmin -uroot -p password 123456 -S /tmp/mysql3308.sock6、登錄實例
[root@localhost ~]# mysql -u root -p -S /tmp/mysql3308.sock mysql> select @@port; +--------+ | @@port | +--------+ | 3308| +--------+ 1 row in set (0.00 sec)mysql> select @@socket; +---------------------+ | @@socket | +---------------------+ | /tmp/mysql3308.sock | +---------------------+ 1 row in set (0.00 sec)7、查看實例運行狀態(tài)?
[root@localhost ~]# ps -ef | grep mysqld_safe | grep -v grep可以看到有三個數(shù)據(jù)庫實例正在運行,加載不同的配置文件,不同的數(shù)據(jù)目錄
[root@localhost ~]# ps -ef | grep mysqld_safe | grep -v grep root 31374 1 0 10:41 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql3307/var/my.cnf --datadir=/usr/local/mysql3307/var --pid-file=/usr/local/mysql3307/mysql3307.pid root 31949 1 0 10:41 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql3308/var/my.cnf --datadir=/usr/local/mysql3308/var --pid-file=/usr/local/mysql3308/mysql3308.pid root 32522 1 0 10:41 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/var/my.cnf --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/mysql.pid至此,獨立配置文件的 mysql 多實例到此就結束了,主要的步驟為
1、創(chuàng)建實例數(shù)據(jù)庫目錄,使用 mysqld initialize 命令進行初始化
2、修改配置文件,修改服務腳本
3、啟動實例服務
4、使用 mysqladmin 設置密碼
5、使用 service 管理實例
轉載于:https://my.oschina.net/sallency/blog/872069
總結
以上是生活随笔為你收集整理的mysql 5.7 配置多实例 — 独立配置文件方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】 linux中pytho
- 下一篇: 20145234黄斐《java程序设计》