mysql下的user表为空---mysql错误

来源:互联网 发布:golang test用法 编辑:程序博客网 时间:2024/05/20 12:52
mysql下的user表为空

1、首先修改my.cnf文件里面的sql_mode值,因认5.6之后的默认值就是下面的两个
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
需要把STRICT_TRANS_TABLES去掉,即改为:

# vi /usr/local/mysql/my.cnf

sql_mode=NO_ENGINE_SUBSTITUTION


注:
简单来说STRICT_TRANS_TABLES这个是启用严格模式,进入安全模式后如果启用了严格模式向表插入数据插入不了的;
my.cnf的位置:/usr/local/mysql/my.cnf

2、停止mysql服务

# service mysql stop


以安全模式启动MySQL
# mysqld_safe –skip-grant-tables &
在另一个终端登录mysql
# mysql -uroot -p
回车后提示输入密码,不需要输入密码,直接回车就可以进入mysql

3、查看下有几个实例
mysql> show databases;
使用mysql实例
mysql> use mysql;
查看有多少表
mysql> show tables;
查看user表有没有数据
mysql> select * from user;

4、向user表插入root用户
INSERT   INTO   user   (Host,User,Password)   VALUES( 'localhost', 'root',password( '123456'));

5、更新root用户权限
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';commit;

6、停止mysql服务
# service mysql stop

7、将sql_mode修改回原来的值
# vi /usr/local/mysql/my.cnf
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

8、启动mysql服务
# service mysql start
因这个是正常的启动mysql了,这时候验证一下root用户登录是否正常了,也就是正常的登录mysql
# mysql -uroot -p
回车后输入密码,如果不相信是否还需要输入密码,可以先直接回车试验一下;
正常情况下登录进mysql了,再查看一下mysql下的user表是否有数据了。



阅读全文
0 0