目录迁移
- 关闭数据库服务
service mysqld stop
- 复制数据库
mv /var/lib/mysql /data/mysql
# 或者使用cp -a复制
# 这两个命令都会带权限到新目录去 - 修改配置文件 /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql ------原系统默认路径
datadir=/data/mysql ------现有路径
#socket=/var/lib/mysql/mysql.sock ------原socket路径现
socket=/data/mysql/mysql.sock ------现有路径 [mysqld_safe]
socket=/data/mysql/mysql.sock -----现有路径
[client]
socket=/data/mysql/mysql.sock -----现有路径
[mysql.server]
socket=/data/mysql/mysql.sock -----现有路径 - 重新启动服务
service mysqld start
- 遇到迁移目录之后无法启动的问题,有可能是selinux搞的鬼,可以设置成Permissive模式
# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive
# setenforce 1 设置SELinux 成为enforcing模式
# setenforce 0 设置SELinux 成为permissive模式或者之间关闭selinux,vi /etc/selinux/config 修改 SELINUX=disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
配置优化
yum安装的mysql默认配置似乎是不能满足要求的,主要修改以下配置
# 批量执行语句包的大小
max_allowed_packet = 16M
# innodb缓存,设置为服务器内存的 80%左右
innodb_buffer_pool_size = 2048M
# 锁等待超时时间
innodb_lock_wait_timeout = 30
# 0时表示关闭,1时表示打开,2表示只要select 中明确指定SQL_CACHE才缓存
query_cache_type = 0
# 最大连接数
max_connections = 1024
# 下面两个参数一起设定
innodb_flush_log_at_trx_commit = 2
sync_binlog = 1000
# 表不区分大小写
lower_case_table_names = 1