背景:安装 MeterSphere时采用外置数据库,数据库使用 rpm 安装的,数据库的data目录默认是在/var/lib下,由于默认mysql装的分区盘空间很小,需要修改对应存储数据文件路径,出于数据安全性的考虑把它挪到 /opt/mysql下,迁移安装目录时,踩了一些坑,给大家分享下:
版本:
MeterSphere:V2.5.1
外置数据库Mysql
步骤:
1. 执行msctl stop 停止应用
2. 查看mysql数据存放目录
mysql -uroot -p #进入数据库
show variables like ‘%dir%’; #查看sql存储路径
查看datadir 那一行所指的路径
3. 备份mysql数据,停止mysql服务
mysqldump -uroot -pPassword123@mysql metersphere > metersphere.sql
4. 创建新的数据库存放目录
在root权限下,创建新的数据目录文件:
mkdir /opt/mysql
这里是从/var/lib/mysql–>/opt/mysql,因为opt下磁盘空间比较大,足够满足空间上的需要。
5.移动数据库目录文件到新的存放目录
mv /var/lib/mysql/* /opt/mysql
6.修改Mysql配置文件
修改/etc/my.cnf, 将datadir和socket地址改为新目录地址
[mysqld]
datadir=/opt/mysql
socket=/opt/mysql/mysql.sock
default-storage-engine=INNODB
character_set_server=utf8mb4
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=64M
transaction_isolation=READ-COMMITTED
innodb_lock_wait_timeout=1800
server-id=1
log-bin=mysql-bin
#expire_logs_days = 2
binlog_format=mixed
#需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
binlog-do-db = metersphere
#将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中
log-slave-updates
#控制binlog的写入频率。每执行多少次事务写入一次(这个参数性能消耗很大,但可减小MySQL崩溃造成的损失)
sync_binlog = 1
#这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
auto_increment_offset = 1
#这个参数一般用在主主同步中,用来错开自增值, 防止键值冲突
auto_increment_increment = 1
#二进制日志自动删除的天数,默认值为0,表示“没有自动删除”,启动时和二进制日志循环时可能删除
expire_logs_days = 7
#将函数复制到slave
log_bin_trust_function_creators = 1
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve
[mysql]
default-character-set=utf8mb4
socket=/opt/mysql/mysql.sock
[mysql.server]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
socket=/opt/mysql/mysql.sock
7.重启数据库
systemctl restart mysqld
8.进入数据库,查看mysql数据存放目录
mysql -uroot -p #进入数据库
show variables like ‘%dir%’; #查看sql存储路径
查看datadir 那一行所指的路径
9.启动 MeterSphere
msctl reload