程序员人生 网站导航

Mysql 下创建root用户

栏目:数据库应用时间:2015-01-21 08:42:04

在linux下安装了mysql以后出现毛病,刚开始以为就是没有密码的问题,依照这篇文章进行了修改:linux下mysql 初次登陆修改密码  修改以后应当没错,但再次启动服务root登录还是不行,下面的就是出现的问题和解决进程:


 mysqld_safe --skip-grant-tables&mysql -uroot mysql
mysql> select * from user;
Empty set (0.00 sec)
mysql> select USER();
+--------+
| USER() |
+--------+
| root@ |
+--------+
1 row in set (0.00 sec)

这里惊奇的发现竟然没有root用户,user表里面是空的,还是第1次遇到这类问题的。

由于 mysqld_safe --skip-grant-tables里面是不能用grant的,因而想到了手动insert插入root用户:

**为了大家方便这里提供1些说明:第1个值是host,第2个为user这两项是必填项,password("my_password")这里进行密码的设置,MY_PASSWORD 就是密码 ,而'Y'有28个,以后有1个enum和3个blob 可以为空,也就是这里的4个空字符,int类型有4个,默许值为0

INSERT INTO user VALUES('%','root',password('MY_PASSWORD'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0)

这里要主要的是第3个字段密码处要用password('密码'),由于mysql中密码是要经过编码的,不是直接字符串保存的。

接着在杀掉所有mysql进程,以后正常重启mysql,便可用root用户登录

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐