安装mysql数据库
1、从mysql官网下载需要的版本 (说明下:下面的网址是官网,不能直接get,需要看下服务器的版本和操作系统位数。找到对应的版本链接填进去。)
#wget http://dev.mysql.com/downloads/mysql/5.6.html
2、进入系统后,检测是否安装mysql.
#rpm -qa | grep -i mysql
若已安装,那么删除它(这里填的是qa出来的东西):
#rpm -ev MySQL-server-5.0.22-0.i386
#rpm -ev MySQL-client-5.0.22-0.i386
3、安装mysql(这里的rpm填tar包里面解压出来的东西)
#rpm -ivh /home/MySQL-server-5.6.30-1.el6.x86_64.rpm
#rpm -ivh /home/MySQL-client-5.6.30-1.el6.x86_64.rpm
==安装版本兼容用的lib==
#rpm -ivh /home/MySQL-shared-compat-5.6.30-1.el6.x86_64.rpm
==处理配置文件==
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
写入配置
#vim etc/my.cnf
[mysqld]
datadir = /var/lib/mysql #数据仓库目录
socket = /var/lib/mysql/mysql.sock #连接文件
character_set_server=utf8 #服务端字符集
collation-server=utf8_general_ci #连接服务字符集
lower_case_table_names=1 #表名不区分大小写
character_set_client=utf8 #客户端字符集
max_connections=1000 #最大连接数
innodb_file_per_table=1 #开启innodb独立的表空间文件
==最后执行安装命令==
#mysql_install_db
4、启动数据库
#/etc/init.d/mysql start
5、登录数据
#mysql -uroot -p
备份恢复
安装Percona Xtrabackup备份工具
1、在官网上获取需要的版本(5.5以上mysql可以使用最新版,5.0的mysql只用用2.0的工具)
#wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/percona-xtrabackup-2.3.2-1.el6.x86_64.rpm
2、安装依赖
#yum -y install epel-release
3、安装备份工具(如果是备份还原不再同一台服务器,都需要安装)
#yum -y localinstall percona-xtrabackup-2.3.2-1.el6.x86_64.rpm
备份
1、全库备份(如果是做主从,建议在主库执行flush logs;)
#innobackupex --defaults-file=/etc/my.cnf --userroot --password sxw@12345 /home/xtrabackup/
2、指定库备份(库名中间空格分隔)
#innobackupex --defaults-file=/etc/my.cnf --userroot --password sxw@12345 -databases=sxwinnodb sxwinnodb_2015 /home/xtrabackup/
恢复
1、拷贝备份到从库
#scp -r /home/xtrabackup root@192.168.1.17 : /home/xtrabackup
2、停mysql
#/etc/init.d/mysqld stop
3、数据目录备份
#mv /var/lib/mysql /var/lib/mysql_bak
4、重建数据目录
#mkdir /var/lib/mysql
5、--apply-log回滚未提交的事务及同步已经提交的事务至数据文件
#innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log /home/xtrabackup/2016-05-18_17-16-31/
6、--copy-back 选项的命令从备份目录拷贝数据,索引,日志到my.cnf文件里规定的初始位置
#innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /home/xtrabackup/2016-05-18_17-16-31/
7、改变文件所属
#chown -R mysql.mysql /var/lib/mysql
8、启动mysql服务
#/etc/init.d/mysqld start
PS:如果还想用原库的用户,需要把mysql/mysql这个库从bak拷贝回去
配置主从(修改数据库配置文件,需要重启数据库才能生效。)
1、master配置
#vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql ##数据仓库目录
server-id=1 ##serverid随便命名,必须是数字。在slave配置时候会用到。
log-bin=mysql-bin ##binlog开启的配置,主从是基于binlog去做的,必须配置
2、Slave配置
[mysqld]
server-id=2
datadir=/var/lib/mysql
log-bin=mysql-bin ##如果是想做主主结构,那么也必须配置binlog
3、==主库==:创建主从同步帐号
#GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY 'slave';
#UPDATE mysql.user SET Password=PASSWORD('slave') where USER='slave';
#FLUSH PRIVILEGES;
4、==主库库==:查找binlog相关
master_log_file 这个参数是主库binlog的当前文件。 master_log_pos 这个是binlog的当前点。 这两个参数,可以通过主库里面获取。 获取方法:
#show master status\G
5、==从库==:配置主从信息
#change master to master_user='slave',master_password='slave',master_host='192.168.1.16',master_port=3306,master_log_file='logbin.000040',master_log_pos=107;
6、==从库==:开始主从同步
#start slave;
#show slave status\G;
常见问题
备份
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解决办法:http://www.cnblogs.com/kerrycode/p/5309083.html
http://www.cnblogs.com/eoiioe/archive/2008/12/28/1363947.html
innobackupex: Error while setting value '/tmp/my.log' to 'log-copy-interval'
解决办法:已经不支持此参数,删除log配置log-copy-interval
换成
general_log=ON
general_log_file=/tmp/mysql.log
http://blog.itpub.net/12762446/viewspace-1195014/
innobackupex: Connecting to MySQL server with DSN 'dbi:mysql
解决办法:yum -y install perl-DBD-mysql
恢复
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 1073741824 bytes!
解决办法:
#rm -rf /home/sql/mysql/ib_logfile1
#rm -rf /home/sql/mysql/ib_logfile0
主从
常用命令
配置主从信息
change master to master_user='slave',master_password='slave',master_host='192.168.1.16',master_port=3306,master_log_file='logbin.000040',master_log_pos=107;
开始主从
start slave;
停止
stop slave;
重置配置
reset slave;
跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
查看从库
show slave status\G;
重新配置log位置
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=107;
查看主库日志信息
show master status\G;
查看数据库版本
select version();
主从不同步问题参考
http://www.jb51.net/article/33052.htm
参考
Mysql安装
备份恢复
主从配置