MySQL高级管理
#mysql数据库密码的修改
一、mysql密码的修改与恢复
1.修改密码
mysqladmin -u root -p123 password 456
数据库内修改
method.first:
update mysql.user set password=password('123') where user='root' and host='localhost';
flush privileges;
method.second:
set password for root@'localhost' =password('123');
注: 此方法无序刷新权限
method.third:
mysql_secure_installation
注: 安全配置向导,会对数据库进行简单的优化
二、忘记mysql密码后的恢复
1.跳过mysql安全验证,直接mysql无密码登录,然后进入修改密码
/etc/init.d/mysqld stop mysqld_safe --skip-grant-table --user=mysql &>/dev/null &
三、如何防止mysql密码泄露
1. 设置环境变量强制linux不记录敏感历史命令
临时生效(命令行操作):HISTCONTROL=ignorespace 然后[ root@ 001 ~] # mysql -uboy -pboy123
永久生效:
echo ' HISTCONTROL=inorespace ' >>/etc/bashrc 然后source生效
2. 通过history删除命令行记录
清空所有记录 history -c
删除指定行记录 history -d 行号
清空历史记录文件 >~/.bash_history
3.把密码写入my.cnf 配置文件的 [ mysqld ] 下添加 skip-grant-tables 重启数据库生效
四、数据库的备份与恢复
1、单库备份与还原
备份 mysqldump -uroot -p123456 lll>/opt/backup/lll.sql 注:此操作只备份其中的表(包括创建表的语句和数据) 还原 mysql -uroot -p123 -e ' create database lll;' mysql -uroot -p123 lll < /opt/backup/lll.sql
2.多库备份与还原
备份 mysqldump -uroot -p123 库名 表1 表2>/opt/backup/mysql_bak_db.sql 还原 mysql -uroot -p123 库名 </opt/backup/mysql_bak_db.sql
3.全库备份
mysqldump -uroot -p123 -A >/opt/backup/mysql_bak_db.sql 或 mysqldump -uroot -p123 --all-databases > /opt/backup/mysql_bak_db.sql
4.还原备份
#备份lol数据库 [root@ c6s02 ~]# mysqldump -uroot -p123456 -B lol >lol.sql #先删除lol数据库 [root@ c6s02 ~]# mysql -uroot -p123456 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lol | | mysql | | performance_schema | | test | | wg | +--------------------+ 6 rows in set (0.00 sec) mysql> drop database lol; Query OK, 3 rows affected (0.03 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wg | +--------------------+ 5 rows in set (0.00 sec) mysql> \q #测试恢复并查看 [root@ c6s02 ~]# mysql -uroot -p123456 <lol.sql Warning: Using a password on the command line interface can be insecure. [root@ c6s02 ~]# mysql -uroot -p123456 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lol | | mysql | | performance_schema | | test | | wg | +--------------------+ 6 rows in set (0.00 sec) mysql> select * from lol.hero; +----+--------+--------+-----------+--------+ | id | 角色 | 职业 | 攻击力 | 血量 | +----+--------+--------+-----------+--------+ | 1 | 蛮王 | 战士 | 200 | NULL | | 2 | 狗头 | 战士 | 100 | NULL | | 3 | 剑圣 | 战士 | 300 | NULL | +----+--------+--------+-----------+--------+ 3 rows in set (0.00 sec)
(2)、method.second:
[root@ c6s02 ~]# mysql -uroot -p123456 mysql> source /root/lol.sql