1、系统约定
Mysql目录安装位置:/mysql
数据库保存位置:/mydata/data
日志保存位置:/mydata/log
# //创建mysql和mydata LV # lvcreate -L 10g -n lv_mysql system # lvcreate -L xxg -n lv_mydata system # mkfs.xfs /dev/system/lv_mysql # mkfs.xfs /dev/system/lv_mydata # vi /etc/fstab //加入 /dev/mapper/system-lv_mysql /mysql xfs defaults 1 2 /dev/mapper/system-lv_mydata /mydata xfs defaults 1 2 # //添加mysql组和用户 # groupadd -g 401 mysql # useradd -u 401 -g mysql -s /sbin/nologin -d /mysql mysql # mkdir -p /mysql # mkdir -p /mydata # mount -a # df -h # mkdir -p /mydata/data # mkdir -p /mydata/log # chown -R mysql:mysql /mysql # chown -R mysql:mysql /mydata |
2、安装配置
# cd /mysql # bin/mysqld --initialize --user=mysql --basedir=/mysql --datadir=/mydata/data //此处需要注意记录生成的临时密码 # bin/mysql_ssl_rsa_setup --datadir=/mydata/data # vi /etc/my.cnf //将3配置参数加入即可 该配置文件要在初始化之后生成,否则初始化会报错 # bin/mysqld_safe --user=mysql & #如果是服务器上的第二个实例 需要指定socker mysql -uroot -p -S /mydata/data2/mysql.sock # bin/mysql --user=root -p //输入前面生成的临时密码 MYSQL> set password=password( 'mysql' ); // 修改mysql的root账户密码 MYSQL> grant all privileges on *.* to root@ 'localhost' identified by 'mysql' with grant option; MYSQL> flush privileges; MYSQL> use mysql; MYSQL> select host,user from user; // 验证 # //添加环境变量 # vi /etc/profile # export PATH=/mysql/bin:$PATH # source /etc/profile # //设置自动启动 # cp support-files/mysql.server /etc/init.d/mysqld # vi /etc/init.d/mysqld //修改basedir=/mysql 和 datadir=/mydata/data # cd /etc/init.d/ # chmod 755 /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig --level 35 mysqld on # chkconfig --list |grep mysqld |
3、配置参数
####首先需要清空/etc/my.cnf文件中的所有内容,然后添加如下内容。在添加时注意以下的备注信息需要删除掉。###### [client] port = 3306 socket = /mydata/data/mysql.sock [mysql] no-auto-rehash [mysqld] socket = /mydata/data/mysql.sock basedir = /mysql datadir = /mydata/data max_allowed_packet = 36M explicit_defaults_for_timestamp = true skip-ssl secure-file-priv = NULL lower_case_table_names = 1 back_log = 300 max_connections = 1000 max_connect_errors = 100 table_open_cache = 4096 external-locking = FALSE read_buffer_size = 8M sort_buffer_size = 8M join_buffer_size = 8M thread_cache_size = 128 query_cache_size = 128M query_cache_limit = 4M ft_min_word_len = 8 thread_stack = 512k transaction_isolation = REPEATABLE-READ tmp_table_size = 128M max_heap_table_size = 128M innodb_log_file_size = 256M long_query_time = 6 slow_query_log slow_query_log_file = /mydata/log/slow.log character_set_server=utf8 init_connect='SET NAMES utf8' sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES' secure_file_priv = /tmp #innodb parameter add by gengjianqiu #innodb_buffer_pool_size=8G //如果服务器为独立的数据库服务器,只提供数据库服务,建议设置物理内存的80%,否则设置为60% . innodb_buffer_pool_instances=8 innodb_flush_method=O_DIRECT innodb_log_buffer_size=16M innodb_log_file_size=500M innodb_log_files_in_group=2 innodb_flush_log_at_trx_commit=2 sync_binlog=1 [mysqldump] quick max_allowed_packet = 32M [mysqld_safe] open-files-limit = 8192 log-error = /mydata/log/mysql_3306.err |
4、本地备份设置
创建本地备份应遵循以下规范: 备份方式:crontab //后续如有更好的方法待改进 脚本目录:/mysql/script //涉及Mysql相关的自开发脚本均部署在该目录 备份目录:/mydata/dbbak 备份周期:1周 //根据实际情况定义 #操作如下: mkdir -p /mysql/script mkdir -p /mydata/dbbak chown -R mysql:mysql /mysql/script chown -R mysql:mysql /mydata/dbbak #备份脚本参照以下修改即可。 #!/bin/sh ################################## #mysql wechat库每天备份脚本 #author: xxxx ################################## MYDUMP=/mysql/bin/mysqldump MYUSER=XXXX MYPASS=XXXX $MYDUMP -u$MYUSER -p$MYPASS wechat |gzip > /mydata/dbbak/wechat_dump_`date +%Y%m%d`.sql.gz find /mydata/dbbak/ -mtime +7 -name "wechat_dump*.gz" -exec rm -f {} \; #注意备份文件大小,保留周期与目录空间情况。 |
5、由5.7.13版本升级至5.7.21版本步骤
5.7.13升级5.7.21步骤
一、查看现有数据库版本并 停止数据库
# mysql -uroot -p
MYSQL> select version();
# /etc/init.d/mysqld stop
# ps -ef |grep mysql // 确认数据库无进程,确实停止了。
二、更新程序包
# mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz //获取最新安装程序包放在/tmp目录下
# cd /tmp
# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
# cd /mysql;rm -rf * //进入原程序目录将程序全部删除
# mv -f /tmp/mysql-5.7.21-linux-glibc2.12-x86_64/* /mysql/
# rm -rf /tmp/mysql-5.7.21-linux-glibc2.12-x86_64
# chown -R mysql:mysql /mysql
三、启动数据库并进行更新
# cd /mysql
# bin/mysqld_safe --user=mysql &
# bin/mysql_upgrade -s -p
mysql_upgrade: [Warning] Using a password on the command line interface can be insecure.
The --upgrade-system-tables option was used, databases won't be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
The sys schema is already up to date (version 1.5.1).
Upgrade process completed successfully.
Checking if update is needed.
四、更新自启动文件
# cp -rf /mysql/support-files/mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld //修改basedir=/mysql 和 datadir=/mydata/data
五、难证数据库升级后的版本
# mysql -uroot -p
MYSQL> select version();