MySQL数据库备份,还原,用户日常管理命令

MySQL数据库备份,还原,用户日常管理命令
一:数据库备份还原
1.备份MySQL数据库的命令
root@localhost /# mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
2.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
root@localhost /# mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
3.直接将MySQL数据库压缩备份
root@localhost /# mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
4.备份MySQL数据库某个(些)表
root@localhost /# mysqldump -hhostname -uusername -ppassword databasename table_1 table_2 > backupfile.sql
5.同时备份多个MySQL数据库
root@localhost /# mysqldump -hhostname -uusername -ppassword –databases db1 db2 > multibackupfile.sql
6.仅仅备份数据库结构
root@localhost /# mysqldump –no-data –databases db1 db2 > structurebackupfile.sql
7.备份服务器上所有数据库
root@localhost /# mysqldump –all-databases > allbackupfile.sql
8.还原MySQL数据库的命令
root@localhost /# mysql -hhostname -uusername -ppassword databasename < backupfile.sql
9.还原压缩的MySQL数据库
root@localhost /# gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
root@localhost /# mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

二:用户账户管理
1.新建用户
//登录MYSQL
root@localhost /# mysql -u root -p
mysql> insert into mysql.user(Host,User,Password) values('localhost','user',password('user'));
mysql> flush privileges; //刷新系统权限表,这样就创建了一个名为:user 密码为:user 的用户。
mysql> exit;//退出后用新建的用户登录一下

2.为用户授权
root@localhost /# mysql -u root -p
mysql> create database userDB; //首先为用户创建一个数据库(userDB)
//授权user用户拥有userDB数据库的所有权限
mysql> grant all privileges on userDB.* to user@localhost identified by '';
mysql> flush privileges; //刷新系统权限表
//如果想指定部分权限给一用户,可以这样来写:
mysql> grant select,update on userDB.* to user@localhost identified by 'user';
mysql> flush privileges; //刷新系统权限表。

mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,
reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。
'连接口令'不能为空,否则创建失败。
例如:
mysql> grant select,insert,update,delete,create,drop on userDB.user_info to user@192.168.0.12 identified by '123′;
给来自192.168.0.12的用户jee分配可对数据库userDB的user_info表进行
select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
mysql> grant all privileges on userDB.* to user@192.168.0.12 identified by '123′;
给来自192.168.0.12的用户user分配可对数据库userDB所有表进行所有操作的权限,并设定口令为123。

mysql> grant all privileges on *.* to user@192.168.0.12 identified by '123′;
给来自192.168.0.12的用户user分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql> grant all privileges on *.* to user@localhost identified by '123′;
给本机用户jee分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
3.删除用户
root@localhost /# mysql -u root -p
mysql> DELETE FROM user WHERE User='user' and Host='localhost';
mysql> flush privileges;

4.修改指定用户/ROOT密码
root@localhost /# mysql -u root -p
mysql> update mysql.user set password=password('pwd') where User='root' and Host='localhost';
mysql> flush privileges;
mysql> quit;

No Comments