MySQL - 日常操作二 备份还原

登录mysql的命令

# 格式: mysql -h 主机地址 -u 用户名 -p 用户密码
mysql -h 110.110.110.110 -P3306 -uroot -p
mysql -uroot -p -S /data1/mysql5/data/mysql.sock -A --default-character-set=GBK

shell 执行 mysql 命令

mysql -u root -p'123' xuesong < file.sql 
# 针对指定库执行sql文件中的语句,好处不需要转义特殊符号,一条语句可以换行.不指定库执行时语句中需要先use
mysql
-u$username -p$passwd -h$dbhost -P$dbport -A -e " use $dbname; delete from data where date=('$date1'); " # 执行多条mysql命令
mysql -uroot -p -S mysql.sock -e "use db;alter table gift add column accountid int(11) NOT NULL;flush privileges;"
# 不登陆mysql插入字段

备份数据库

mysqldump -h host -u root -p --default-character-set=utf8 dbname >dbname_backup.sql 
# 不包括库名,还原需先创建库,在use 

mysqldump -h host -u root -p --database --default-character-set=utf8 dbname >dbname_backup.sql 
# 包括库名,还原不需要创建库

/bin/mysqlhotcopy -u root -p 
# mysqlhotcopy只能备份MyISAM引擎

mysqldump -u root -p -S mysql.sock --default-character-set=utf8 dbname table1 table2 > /data/db.sql 
# 备份表

mysqldump -uroot -p123 -d database > database.sql 
# 备份数据库结构

innobackupex --user=root --password="" --defaults-file=/data/mysql5/data/my_3306.cnf --socket=/data/mysql5/data/mysql.sock --slave-info --stream=tar --tmpdir=/data/dbbackup/temp /data/dbbackup/ 2>/data/dbbackup/dbbackup.log | gzip 1>/data/dbbackup/db50.tar.gz 
# xtrabackup备份需单独安装软件 优点: 速度快,压力小,可直接恢复主从复制

还原数据库

mysql -h host -u root -p dbname < dbname_backup.sql 
source 路径.sql 
# 登陆mysql后还原sql文件

赋权限

# 指定IP: $IP 本机: localhost 所有IP地址: % 
# 通常指定多条
grant all on zabbix.
* to user@"$IP";
# 对现有账号赋予权限
grant
select on database.* to user@"%" Identified by "passwd";
# 赋予查询权限(没有用户,直接创建)
grant all privileges on database.
* to user@"$IP" identified by 'passwd';
# 赋予指定IP指定用户所有权限(不允许对当前库给其他用户赋权限)
grant all privileges on database.
* to user@"localhost" identified by 'passwd' with grant option;
# 赋予本机指定用户所有权限(允许对当前库给其他用户赋权限)
grant
select, insert, update, delete on database.* to user@'ip'identified by "passwd";
# 开放管理操作指令
revoke all on
*.* from user@localhost;
# 回收权限

更改密码

update user set password=password('passwd') where user='root'
mysqladmin -u root password 'password'

mysql忘记密码后重置

cd /data/mysql5
/data/mysql5/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
use mysql;
update user set password=password('123456') where user='root';

mysql主从复制失败恢复

slave stop;
reset slave;
change master to master_host='10.10.10.110',master_port=3306,master_user='repl',master_password='repl',master_log_file='master-bin.000010',master_log_pos=107,master_connect_retry=60;
slave start;

 

posted @ 2018-04-01 21:25  01234567  阅读(155)  评论(0编辑  收藏  举报