查看当前用户
select current_user()
版本号: Mysql_5.7.21
Ubuntu 16.4
在Linux中有时安装Mysql会出现没有root用户的状况,或者说root账户被从mysql.user表中误删除,这样就导致很多权限无法控制。
1、 修改/etc/mysql/mysql.conf.d/mysqld.cnf
文件,添加skip-grant-tables
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables
2、重启
service mysql restart
3、免密登录
mysql> mysql
mysql> use mysql;
mysql> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
mysql> update user set Host='localhost',select_priv='y',insert_priv='y',Update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
mysql> quit;
4、 使用下列命令重新登陆, 设置root的密码
mysql> mysql -u root
mysql> update mysql.user set authentication_string=password('yourrootpasswd') where user='root';
# %表示设置远程机器可访问mysql。
mysql> update user set host = '%' where user = 'root';
# mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
mysql> flush privileges;
mysql> quit;
5、修改/etc/mysql/mysql.conf.d/mysqld.cnf
文件,将skip-grant-tables去掉,然后重启mysql
6、重启
service mysql restart
评论前必须登录!
注册