一、数据库安全策略
MySQL在安装过后,默认的root管理员密码为空,这是不安全的,我们在单实例安装后做了一些操作,如:
为root用户设置密码
删除一些无用的账户
删除默认存在的test数据库
添加了system管理员,其权限与root用户等价
(一)为管理员设置密码
1、单实例
#给无密码用户设置密码
[root@hadoop-slave1 /]#mysqladmin -uroot password'123456'
2、多实例
[root@hadoop-slave1 /]#mysqladmin -uroot -p'123456' password'123456' -S /data/3307/mysql.sock
上述命令均是在linux命令行,而非MySQL命令行。
(二)修改管理员密码
1、命令行外修改法(法一)
[root@hadoop-slave1 /]#mysqladmin -uroot -p'123456' password'123456'
2、sql语句修改法(法二)
mysql> update mysql.user set password=password("123456") where user='root' and host='localhost';
这种方法是和密码丢失后,通过--skip-grant-table启动的数据库服务修改密码。
注意:
必须指定where语句
必须指定password方法来进行加密
3、password修改(法三)
数据库启动后,root密码为空,马上为其设置密码:
mysql> set password=password('123456');
这种方法不适合--skip-grant-table方式修改密码。
二、修改丢失的数据库密码
(一)单实例修改丢失的数据库密码
1、停止数据库服务
首先应该停止正在运行的数据库服务:
[root@hadoop-slave1 /]#/etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!
2、忽略授权方式启动
密码已经丢失,使用--skip-grant-table忽略授权方式登录,无需密码:
[root@hadoop-slave1 /]#mysqld_safe --skip-grant-table --user=mysql &
3、登录
此时,已经无需密码了,直接登录即可:
[root@hadoop-slave1 ~]#mysql -uroot -p
4、修改root密码
修改root密码为新密码:
mysql> update mysql.user set password=password("123456") where user='root' and host='localhost';
Query OK,1 row affected (0.00sec)
Rows matched:1 Changed: 1Warnings: 0
mysql>flush privileges;
Query OK, 0 rows affected (0.01 sec)
5、重启服务
首先关闭现有服务,然后重启:
#关闭现有服务
[root@hadoop-slave1 ~]#mysqladmin -uroot -p123456 shutdown
#重启服务
[root@hadoop-slave1 ~]#/etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
然后就可以使用新密码进行登录。
(二)多实例修改丢失的数据库密码
1、停止数据库服务
首先应该停止正在运行的数据库服务:
[root@hadoop-slave1 /]# killall mysqld
2、忽略授权方式启动
密码已经丢失,使用--skip-grant-table忽略授权方式登录,无需密码:
[root@hadoop-slave1 /]# mysqld_safe --defaults=/data/3307/my.cnf --skip-grant-table --user=mysql &
3、登录
此时,已经无需密码了,直接登录即可:
[root@hadoop-slave1 ~]# mysql -uroot -p -S /data/3307/mysql.sock
4、修改root密码
修改root密码为新密码:
mysql> update mysql.user set password=password("123456") where user='root' and host='localhost';
Query OK, 1 row affected (0.00sec)
Rows matched: 1 Changed: 1Warnings: 0
mysql>flush privileges;
Query OK, 0 rows affected (0.01 sec)
5、重启服务
首先关闭现有服务,然后重启:
# 关闭现有服务
[root@hadoop-slave1 ~]# killall mysqld
# 重启服务
[root@hadoop-slave1 ~]# /data/3307/mysql start
Starting MySQL.. SUCCESS!