skip-grant-tables顾名思义,数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录。
1.修改配置参数 /etc/my.cnf在[mysqld] 下面加上:
skip-grant-tables
配置项。
2.重启mysql 使得参数生效:
service mysqld restart
注意事项此时所有用户登录当前数据库都是免密码的,所以此时数据库的安全性是非常低的。
3.修改密码
select password,host,user from mysql.user;
UPDATE mysql.user SET password = PASSWORD('0rb!t') WHERE user = 'root';
mysql5.7后版本使用下面的方法修改密码
select authentication_string,host,user,plugin from mysql.user;
mysql -uroot;
mysql> update mysql.user set plugin="mysql_native_password" where user="root";
mysql> update mysql.user set authentication_string=password('str0ngPa$$w0rd') where user='root' and host = 'localhost';
#修改密码方法2
alter user user() identified by "str0ngPa$sword";
update mysql.user set host = '%' where user='root' and host='localhost';
4.开启远程
>sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'str0ngPa$$w0rd' WITH GRANT OPTION;
mysql> flush privileges;
5.去掉参数
a.密码修改好了之后再将配置文件中 skip-grant-tables去掉
b.再次重启数据库。