日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 5.7 配置多实例 — 独立配置文件方式

發布時間:2025/3/18 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 5.7 配置多实例 — 独立配置文件方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

使用獨立配置文件來實現 mysql 的單機多實例

一下教程皆以已在 /usr/local 下安裝了 mysql 為說明

我們將在原 3306 實例的基礎上新建 3307 和 3308 兩個實例

1、創建實例目錄

[root@localhost ~]# mkdir /usr/local/mysql{3307,3308}/data -p [root@localhost ~]# chown mysql.mysql /usr/local/mysql{3307,3308} -R

2、初始化數據目錄

# 這里我們使用 --initialize-insecure 來讓生成的新實例的數據庫密碼為空 [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_timestamp

3、分配獨立配置文件

這里簡單說一下,mysql 的多實例是通過不同的配置創建多個進程,basedir 是一樣的,實例擁有獨立的配置文件和數據目錄 datadir,而 mysql 加載配置的過程為:

/etc/my.cnf >?basedir/my.cnf >?datadir/my.cnf

?我們需要把實例的配置文件隔離開,這里將配置文件放在每個?datadir 下(在 etc 或 basedir 下就不要存在 my.cnf 了,當然配置些全局的參數在里面試沒問題的,這里我們為了方便就不搞全局配置了,每個實例都是絕度的單獨配置文件),待會我們還要修改 mysql 的服務控制腳本,將實例注冊到系統服務中,方便使用 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、注冊到系統服務中,方便使用 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|reload

4、啟動實例

[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|restart

5、修改初始密碼

# 原密碼為空 設置新密碼為 123456 [root@localhost ~]# mysqladmin -uroot -p password 123456 -S /tmp/mysql3308.sock

6、登錄實例

[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、查看實例運行狀態?

[root@localhost ~]# ps -ef | grep mysqld_safe | grep -v grep

可以看到有三個數據庫實例正在運行,加載不同的配置文件,不同的數據目錄

[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、創建實例數據庫目錄,使用 mysqld initialize 命令進行初始化

2、修改配置文件,修改服務腳本

3、啟動實例服務

4、使用 mysqladmin 設置密碼

5、使用 service 管理實例

轉載于:https://my.oschina.net/sallency/blog/872069

總結

以上是生活随笔為你收集整理的mysql 5.7 配置多实例 — 独立配置文件方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。