Mac 下mysql 登录报错ERROR 1045 (28000)

Mac 下mysql 登录报错ERROR 1045 (28000),第1张

解决方法:

第一步:如果mysql服务正在进行,将之停止。

第二步:在终端中以管理员权限启动mysqld_safe,命令如下:

sudo/usr/local/mysql/bin/mysqld_safe--skip-grant-tables

执行结果如下:

 mysqld_safe Logging to'/usr/local/mysql/data/lyqdeMacBook-Pro.local.err'.2016-06-12T08:29:17.6NZ mysqld_safe Starting mysqld daemon with databasesfrom/usr/local/mysql/data

第三步:不要关闭当前的终端窗口,新建一个终端窗口,输入如下命令,回车登录mysql

/usr/local/mysql/bin/mysql

登录后,看到欢迎信息:

看到结果:

Reading table informationforcompletion of table and column names

You can turn offthisfeature togeta quicker startup with -A

Database changed

mysql>

然后,更新root的密码,SQL如下:

mysql>update usersetauthentication_string=password('root')whereHost='localhost'and User='root'

注意:

①有的版本的mysql中,密码可能存储在password字段中,可以使用"describe user"命令来查看下表结构再 *** 作

②authentication_string的值一定通过password函数来计算(password('root'))

执行结果如下:

Query OK,1row affected,1warning (0.01sec)

Rows matched:1Changed:1Warnings:1

退出mysql(执行sql语句:exit)

最后一步:将mysqld_safe进程杀死,重启mysqld。

错误提示:不能先将select出表中的某些值,再update这个表(在同一语句中)。

替换方案:

方案一:

多嵌套一层子查询,再进行删除,如下:

完整代码如下:

DELETE FROM blur_article WHERE id NOT IN (

SELECT id FROM (

SELECT min(id) AS id FROM blur_article GROUP BY title

) t

)

方案二:

1.创建一张临时表,将要删除的条件自动存入临时表中:

2.再根据临时表,删除主表数据:

3.最后删除掉临时表:

完整代码如下:

1.create table temp as select min(id) as col1 from blur_article group by title

2.delete from blur_article where id not in (select col1 from tmp)

3.drop table tmp


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7342685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存