1.MySQL库备份脚本(navicat for mysql是外部测试连接工具)
#!/bin/bash
# 要备份的数据库名,多个数据库用空格分开
databases=(guowang yaohan wycenter)
# 备份文件要保存的目录
basepath='/opt/guowang/mysql/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
# 循环databases数组
for db in ${databases
use guowang;
alter database guowang character set utf8;
设置guowang数据库默认utf8
ALTER DATABASE `guowang` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置gw_name表默认utf8
ALTER TABLE `gw_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3.1MySQL 查看所有用户
select * from mysql.user;
3.2增加库
create database test;
3.3删除库
drop database test2;
3.4初始密码设置
mysqladmin -u root password
4.centos7中mysql的主从配置(并非双向同步)
10.10.84.91 mysql:guowang/123456
10.10.84.92 mysql:guowang/123456
yum install mariadb mariadb-server
systemctl start mariadb
执行mysql
报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
find / -name mysql.sock
解决1:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
解决2:mysql --socket=/var/lib/mysql/mysql.sock
主:
vi /etc/my.cnf
server-id=1
log-bin=mysql-bin
log-slave-updates=1
binlog-do-db=test1
binlog-do-db=test2
binlog-ignore-db=test3
binlog-ignore-db=test4
systemctl restart mariadb
mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'guowang1'@'10.10.84.92' IDENTIFIED BY '123456';
mysql> flush privileges;
mysql> show master status;
备:
vi /etc/my.cnf
server-id=2
log-bin=mysql-bin
log-slave-updates=1
replicate-do-db=test1
replicate-do-db=test2
replicate-ignore-db=test3
replicate-ignore-db=test4
systemctl restart mariadb
mysql
mysql> change master to master_host='10.10.84.91',master_user='guowang1',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;
mysql> start slave;
mysql> show slave status\G;
1.停掉slave服务
mysql> slave stop;
2.重置slave服务
mysql> reset stop;
Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令
5.mysql主从(主主|从从)双向同步
主:
server-id=1
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
auto_increment_offset = 1
auto_increment_increment = 2
mysql> GRANT REPLICATION SLAVE ON *.* TO 'wc123'@'10.10.84.92' IDENTIFIED BY '123';
mysql> flush privileges;
mysql> change master to master_host='10.10.84.92',master_user='wc456',master_password='456', master_log_file='mysql-bin.000008',master_log_pos=337;
mysql> start slave;
从:
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
auto_increment_offset = 2
auto_increment_increment = 2
mysql> GRANT REPLICATION SLAVE ON *.* TO 'wc456'@'10.10.84.91' IDENTIFIED BY '456';
mysql> flush privileges;
mysql> change master to master_host='10.10.84.91',master_user='wc123',master_password='123', master_log_file='mysql-bin.000007',master_log_pos=246;
mysql> start slave;