mysql 迁移datadir

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

mysql 数据库的默认安装的路径在/var/lib/mysql,但是实际中,我们在安装时常常就需要定制安装数据库路径,比如/data/mysql,或者/opt/mysql,通常是一个单独的一块盘或者分区,这样有利于性能调优和保护数据安全,同时也方便进行维护。


重新初始化mysql 的datadir方法是官方提供的perl脚本mysql_install_db。


perocna是一个优秀的mysql衍生版,以高性能为特色,这里以Percona 最新版5.6.12作为示范,迁移目标是/data/mysql


1、确保关闭了selinux,减少排障干扰。

事实证明,selinux是一大败笔,其规则不易维护,还常导致莫名其妙的问题。


2、安装percona

1
2
rpm -Uhv http: //www .percona.com /downloads/percona-release/percona-release-0 .0-1.x86_64.rpm
yum  install  Percona-Server-server-56 --enablerepo=percona


3、创建目标目录

1
2
mkdir  -p  /data/mysql
chown  -R mysql:mysql  /data/mysql


4、迁移命令

1
mysql_install_db --user=mysql --basedir=/usr --datadir=/data/mysql


5、为避免夜长梦多,干掉/var/lib/mysql

1
rm  -rf  /var/lib/mysql


6、创建合适的/etc/my.cnf,一定要指定datadir,其他具体配置没有定论,不过mysql5.6 默认的配置比较OK,推荐通过percona的工具在线配置一个

https://tools.percona.com/


这里暂且贴一份,机器配置是6核,16G内存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[mysql]
# CLIENT #
port                           = 3306
socket                         =  /data/mysql/mysql .sock
default-character- set           = utf8
[mysqld]
# GENERAL #
user                           = mysql
default_storage_engine         = InnoDB
socket                         =  /data/mysql/mysql .sock
pid- file                        /data/mysql/mysql .pid
character- set -server           = utf8
# MyISAM #
key_buffer_size                = 32M
myisam_recover                 = FORCE,BACKUP
# SAFETY #
max_allowed_packet             = 16M
max_connect_errors             = 1000000
skip_name_resolve
# DATA STORAGE #
datadir                        =  /data/mysql/
# BINARY LOGGING #
log_bin                        =  /data/mysql/mysql-bin
expire_logs_days               = 14
sync_binlog                    = 1
# CACHES AND LIMITS #
tmp_table_size                 = 32M
max_heap_table_size            = 32M
query_cache_type               = 0
query_cache_size               = 0
max_connections                = 500
thread_cache_size              = 50
open_files_limit               = 65535
table_definition_cache         = 1024
table_open_cache               = 2048
# INNODB #
innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_log_file_size           = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
innodb_buffer_pool_size        = 10G
innodb_thread_concurrency      = 12
thread_handling                = pool-of-threads
#auto_increment_increment       = 2
#auto_increment_offset          = 0
# LOGGING #
log_error                      =  /data/mysql/mysql-error .log
log_queries_not_using_indexes  = 1
slow_query_log                 = 1
slow_query_log_file            =  /data/mysql/mysql-slow .log


7、启动mysql

1
2
chkconfig mysql on
service mysql start


至于报错,原因肯定有不止一百个,不解释了。按照上面的步骤执行就可以了,收集的常见报错如下,仅供参考:


A版,mysql启动报错

1
Starting MySQL...The server quit without updating PID  file  ,xxx.pid


B版,mysql_install_db 脚本运行出错

1
FATAL ERROR: Could not  find  my-default cnf, could not  find  my-default cnf, fata error my-default cnf, fatal error could not  find  my-default cnf, mysql_install_db my-default cnf error



另外,还有一个偷懒的办法,先创建/data/mysql,然后软链接到/var/lib/mysql,再安装mysql-server,这样反而可以规避一些常见错误。











本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1236249,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
存储 监控 关系型数据库
rds迁移前准备资源评估与配置
rds迁移前准备资源评估与配置
22 5
|
18天前
|
存储 容灾 安全
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
18 3
|
20天前
|
存储 关系型数据库 数据库
进行RDS(Relational Database Service)迁移时,资源需求分析
进行RDS(Relational Database Service)迁移时,资源需求分析
16 3
|
21天前
|
关系型数据库 MySQL 数据库
rds迁移数据迁移工具选择
rds迁移数据迁移工具选择
33 3
|
23天前
|
监控 安全 关系型数据库
在规划阿里云RDS跨区迁移资源和服务可用性
在规划阿里云RDS跨区迁移资源和服务可用性
207 4
|
24天前
|
SQL 运维 关系型数据库
在阿里云RDS(Relational Database Service)进行跨区域迁移
在阿里云RDS(Relational Database Service)进行跨区域迁移
28 2
|
24天前
|
存储 监控 关系型数据库
在规划和准备阿里云RDS(Relational Database Service)跨区域迁移
在规划和准备阿里云RDS(Relational Database Service)跨区域迁移
12 1
|
9天前
|
关系型数据库 MySQL 数据库
如何正确的把Mysql迁移至其他机器上运行
如何正确的把Mysql迁移至其他机器上运行
|
18天前
|
关系型数据库 测试技术 数据库
rds迁移前准备数据一致性保障
rds迁移前准备数据一致性保障
24 5
|
19天前
|
存储 容灾 关系型数据库
rds迁移后验证
rds迁移后验证
18 1