MySQL登录密码及Python使用MySQL问题

问题由来:
可能是由于安装MySQL时候的设置问题,之前我登录自己笔记本上的MySQL一直都是用命令mysql -u root mysql进行登录的(如下),而不是以需要输入密码的登录方式来登录。

C:\Users\Dylan>mysql -u root mysql
#通过如下命令查看数据库,可以知道上面的登录方式是以root方式登录的。
mysql> show databases;

查看账户信息,发现确实都是没有密码的。

mysql> select user,host,password from user;
+------+-----------+----------+
| user | host      | password |
+------+-----------+----------+
| root | localhost |          |
| root | 127.0.0.1 |          |
| root | ::1       |          |
|      | localhost |          |
+------+-----------+----------+
4 rows in set (0.02 sec)

然后用如下需要输入密码的命令来登录数据库的时候,就需要输入密码了。

C:\Users\Dylan>mysql -u root -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
#可是我们并没有设置密码。这时候可能密码为空,直接回车就行(忘记测试了。。。)

上面的这些情况也都是不影响我们的使用的,包括在Python中使用MySQL以及用图形化界面Navicat来使用MySQL。如在Python中使用MySQL(具体可参考使用MySQL,慕课网上还有一个课程Python操作MySQL数据库):

# 导入MySQL驱动
>>> import mysql.connector
# 注意把password设为你的root口令,因为我没有设置密码所以设置为空才可以。
>>> conn = mysql.connector.connect(user='root', password='', database='test01')
>>> cursor = conn.cursor()

<br /> <br />


如上,当没有设置密码的时候确实也是不影响我们在自己电脑本地使用MySQL的,包括在Python以及Navicat中使用MySQL。但我就想设置一下密码,该如何进行设置密码呢?如下代码:

#以root权限登录MySQL
mysql>mysql -u root mysql
#使用update你进行设置
mysql> update user set password=password('123456') where user='root' and host='localhost';
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0

再次查看账户信息,发现localhost对应的已经有密码了。


mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 |                                           |
| root | ::1       |                                           |
|      | localhost |                                           |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

若想再次登录的时候有输入密码提示,需要刷新权限,然后退出重新登录,如下命令。后面如果再在Python里面使用的话就需要输入密码了。

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.16 sec)
mysql> quit
Bye

#再用没有密码前的登录方式发现登录不了呢
C:\Users\Dylan>mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

#采用下面这种输入密码的方式发现登录成功
C:\Users\Dylan>mysql -uroot -p 
Enter password: ******

<br /> <br /> <br />
可是如果我们本来数据库是有密码的,但当我们忘记mysql数据库密码呢?如何正常进入数据库,进行修改密码呢?可如下进行操作:

#01.在Win下用cmd启动终端,
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。

C:\Users\Dylan>

#02.找到mysql.exe和mysqld.exe所在的文件夹,比如我的:
D:\ruanjian\mysql-5.6.10-winx64\bin
#03.然后切换目录到mysql.exe和mysqld.exe所在的文件夹
C:\Users\Dylan>d:
D:\>cd D:\ruanjian\mysql-5.6.10-winx64\bin

#04.在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。
#05.输入如下命令回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了
D:\ruanjian\mysql-5.6.10-winx64\bin>mysqld --skip-grant-tables

#06.此时再打开一个新的命令行,在然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。
C:\WINDOWS\system32>mysql
#用如下命令查看的时候可以发现是以root权限登录的。
mysql> show databases;
#还可以查看账户信息
mysql> select user,host,password from user;

#07.用Update进行密码修改
mysql> update user set password=password('123456') where user='root' and host='localhost';
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0
#08.然后刷新权限,退出。再重启就会提示输入密码了。
mysql> FLUSH PRIVILEGES;
mysql> quit

另外,不带密码也是可以进行登陆mysql数据库的,只不过不是以root权限,显示数据库时只能看到两个数据库。重启数据库之后之所以不带密码任然能够登录,是因为我的数据库里存在无须口令的账户。

>>> mysql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+
2 rows in set (0.00 sec)

#之所以也可以登录,如下,是因为最后一行是无需口令的账户。
mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 |                                           |
| root | ::1       |                                           |
|      | localhost |                                           |
+------+-----------+-------------------------------------------+
4 rows in set (0.03 sec)
·```

参考链接如下:
[mysql数据库忘记密码时如何修改](http://jingyan.baidu.com/article/454316ab4e9e65f7a7c03ad1.html)
[MySQL修改密码](https://zhidao.baidu.com/question/1603863845338636507.html)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容