Mysql - flush privileges 命令

本文介绍如何在MySQL中创建新用户、更改用户密码及刷新权限的方法。通过具体实例展示了使用SQL命令进行用户管理的过程,并强调了刷新权限的重要性。

命令
mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;­
mysql> flush privileges;­
mysql> quit­

答:­
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­
具体例子: ­
1.用户root用户进入mysql再打开mysql数据库(use mysql)后­
create user xh identified by ‘xh’;    //创建一用户xh并添加密码为xh­
exit;    //退出测试­
2.返回C目录下用新用户重新进入mysql­
mysql -uxh -pxh   //进入成功­
3.重新使用root用户进入mysql并打开mysql数据库­
update user set password=password (‘monkey’) where user=’xh’;   //更改xh用户密码为monkey­
exit;     //再次退出测试­
4.直接以用户XH身份进入,用新密码进入看是否成功­
mysql -uxh -pmonkey;  //报错,密码不正确­
5. 重新以ROOT 用户登陆并进入mysql数据库,重新修改用户密码­
update user set password=password (‘monkey’) where user=’xh’;   //更改xh用户密码为monkey­
flush privileges;   //刷新MySQL的系统权限相关表­
exit;­

6.再次退出,并以xh用户monkey密码进入,测试成功!



转自:http://www.cnblogs.com/zcy_soft/archive/2011/02/10/1950859.html

<think>嗯,用户现在想了解mysqldump命令中各个参数的详细解释及其适用场景,特别是提到了-uroot、-p、--all-databases和--flush-privileges这几个参数。首先,我得先回忆一下mysqldump的常用参数,并确认每个参数的具体作用。 首先,用户提到的-uroot,这里应该是指指定用户名,格式是-u后面接用户名,对吧?比如-u root,中间没有空格或者有空格的区别。但通常写法是-uroot,这样更简洁。然后-p参数是用来提示输入密码的,可能用户需要知道是否需要立即输入密码,或者是否可以写成-p1234这样的形式。不过根据安全考虑,推荐在命令行中只写-p,然后在提示时输入密码,避免密码泄露。 接下来是--all-databases参数,这个参数的作用是备份所有数据库,包括系统库如mysql、information_schema等。需要提醒用户注意,使用这个参数时可能会备份大量数据,特别是系统库,恢复时可能会有权限相关的问题,所以使用场景应该是需要完整备份整个MySQL实例的情况,比如迁移或者全量备份。 然后是--flush-privileges参数,这个参数的作用是在导出mysql数据库后,发送FLUSH PRIVILEGES语句。这通常在使用--all-databases导出包含mysql库时,或者在导出mysql库本身时使用,以确保权限表在导入时被正确加载。需要解释这个参数的必要性,比如在恢复权限表后,MySQL服务器需要重新加载权限,这时候FLUSH PRIVILEGES就很重要了。 接下来,用户可能需要更多参数的例子,比如--single-transaction、--lock-tables、--routines等。比如,--single-transaction适用于InnoDB表,保证数据一致性,而--lock-tables则是对每个表进行锁定,适用于MyISAM引擎。还有--routines参数用于导出存储过程和函数,默认情况下可能不导出这些对象,需要明确指定。 另外,用户可能对导出兼容性参数感兴趣,比如--compatible,可以调整导出语句的兼容性,以适配其他数据库系统或旧版本MySQL。例如,--compatible=ansi会生成符合ANSI SQL标准的输出。 还要考虑到用户的实际应用场景,比如备份策略、迁移需求、权限管理等问题。需要给出典型的使用示例,帮助用户理解如何组合这些参数。比如全库备份的命令,或者只备份特定数据库或表,以及如何启用事务来保证一致性。 可能还需要注意一些参数之间的互斥性,比如--lock-tables和--single-transaction不能同时使用,或者某些参数需要特定的存储引擎支持。此外,提醒用户注意密码安全,避免在命令行中直接暴露密码,使用-p之后不带密码,手动输入更安全。 最后,根据用户的问题,生成相关的问题,比如如何增量备份、如何优化导出速度、参数之间的区别等,帮助用户进一步学习和解决问题。需要确保回答结构清晰,参数解释详细,并给出实际例子,让用户更容易理解和应用。</think>### mysqldump 命令参数详解 #### 1. `-u root` 参数 **作用**:指定连接MySQL服务器的用户名 **格式**:`-u`与用户名之间允许有空格(`-u root`)或无空格(`-uroot`) **适用场景**:所有需要身份验证的操作,例如导出数据库时必选参数 **注意**:需确保该用户具有对应数据库的导出权限[^3] #### 2. `-p` 参数 **作用**:指定密码输入方式 **格式**:`-p`后可直接接密码(`-p1234`)或单独使用`-p`后回车输入(推荐后者避免密码泄露) **示例**: ```bash mysqldump -uroot -p --all-databases > backup.sql ``` **适用场景**:所有需要密码验证的操作 #### 3. `--all-databases` 参数 **作用**:导出MySQL实例中**所有数据库**,包括系统库(`mysql`/`information_schema`等) **特点**: - 生成`CREATE DATABASE IF NOT EXISTS`语句 - 自动包含`--routines`(存储过程)和`--events`(事件) **适用场景**:完整服务器迁移、全量备份 **注意**:导出文件较大时建议配合压缩命令(如`gzip`) #### 4. `--flush-privileges` 参数 **作用**:在导出`mysql`系统库后添加`FLUSH PRIVILEGES`语句 **必要性**:当导出包含权限表(`user`/`db`等)时,确保导入时权限立即生效 **触发条件**:当检测到导出`mysql`库时自动添加,但显式指定更可靠 **典型组合**: ```bash mysqldump -uroot -p --databases mysql --flush-privileges > privileges.sql ``` #### 5. 其他核心参数 | 参数 | 作用 | 示例场景 | |-----|-----|---------| | `--single-transaction` | 通过事务保证InnoDB表一致性 | 在线热备InnoDB数据库 | | `--lock-tables` | 锁定所有表后导出(MyISAM适用) | 非事务引擎数据库备份 | | `--routines` | 导出存储过程和函数 | 需要保留业务逻辑的备份 | | `--triggers` | 导出触发器 | 需要保持数据完整性的备份 | | `--no-data` | 仅导出表结构 | 快速复制数据库结构 | | `--compatible=ansi` | 生成ANSI标准兼容SQL | 跨数据库迁移[^2] | ### 典型场景命令 1. **全库热备(InnoDB)**: ```bash mysqldump -uroot -p --all-databases --single-transaction --routines --triggers | gzip > full_backup_$(date +%F).sql.gz ``` 2. **指定库备份**: ```bash mysqldump -uroot -p --databases test1 test2 --flush-privileges > multi_db.sql ``` 3. **表级备份**: ```bash mysqldump -uroot -p test1 hd_acl_entry > table_backup.sql ``` ### 注意事项 1. 密码安全:避免在命令行直接暴露密码(`-p1234`方式有泄露风险) 2. 版本兼容:使用`--compatible`参数时需确认目标数据库支持特性 3. 锁冲突:生产环境使用`--lock-tables`可能导致服务中断 4. 恢复验证:重要备份需通过`mysqlcheck`验证完整性
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值