一、mysql 查看当前版本
1、命令行登录后查看: 登录到MySQL服务器后,执行以下命令:
2、仅在命令行查看而不登录
1 2
| mysql --version mysql -V
|
3、版本解释 Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper
1 2 3 4 5 6 7 8 9 10 11
| Ver: 这是版本(Version)的简写,指的是MySQL服务器的版本。
14.14: 这是MySQL服务器的具体版本号。在这里,14.14 可能是指开发系列版本,例如 5.7.14。
Distrib: 这个词是“Distribution”的缩写,意味着这是一个分发版,通常是由第三方编译的,用于特定的操作系统和平台。
5.7.44: 这是MySQL数据库管理系统的主要版本号,表明这是5.7系列的第44次更新或补丁。
for Linux (x86_64): 这指定了MySQL服务器被编译和设计运行的操作系统和处理器架构。在这个例子中,它被编译为在Linux操作系统上运行,并且适用于x86_64(即64位)的处理器架构。
using EditLine wrapper: EditLine是一个为读取、编辑和缓存输入而设计的库,通常用于实现命令行编辑功能,比如命令历史的记录和编辑。using EditLine wrapper 表示MySQL服务器使用了EditLine库作为其命令行编辑接口。
|
二、不记得mysqlroot密码重置MySQL的root密码
1、停止MySQL服务。
2、启动MySQL服务,跳过授权表。
(1)第一种方法 : 命令行修改 启动
1
| mysqld_safe --skip-grant-tables &
|
(2)第二种方法 :修改配置文件再启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| find / -name my.cnf vim /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock
[mysql] prompt="MySQL [\d]> " no-auto-rehash
[mysqld] port = 3306 socket = /tmp/mysql.sock
basedir = /usr/local/mysql datadir = /data/mysql pid-file = /data/mysql/mysql.pid user = mysql bind-address = 0.0.0.0 server-id = 1
# mysqld 模块下添加此行 ,改密码生效后重新注释掉再启动 skip-grant-tables
|
3、登录修改密码
1 2 3 4 5 6
| USE mysql; UPDATE user SET Password=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; quit;
|
或者
1 2 3 4
| USE mysql; UPDATE user SET authentication_string = password('新密码') WHERE User = 'root'; FLUSH PRIVILEGES; quit;
|
例如:密码为 abc@123
1
| UPDATE USER SET AUTHENTICATION_STRING = PASSWORD('abc@123') WHERE USER = 'ROOT';
|
MySQL 5.7及之前版本: UPDATE user SET Password=PASSWORD(‘你的新密码’) WHERE USER=’root’;
MySQL 8.0及之后版本: UPDATE user SET authentication_string = password(‘新密码’) WHERE User = ‘root’;
MySQL 8.0移除了 password
字段,取而代之的是 authentication_string
字段。
4、删除或注释掉my.cnf中的skip-grant-tables。
1 2 3 4 5 6 7 8 9 10 11 12 13
| [mysqld] port = 3306 socket = /tmp/mysql.sock
basedir = /usr/local/mysql datadir = /data/mysql pid-file = /data/mysql/mysql.pid user = mysql bind-address = 0.0.0.0 server-id = 1
# mysqld 模块下添加此行 ,改密码生效后重新注释掉再启动 #skip-grant-tables
|
5、重启MySQL服务:
1
| /etc/init.d/mysqld restart
|
6、使用新密码登录
三、记得mysqlroot密码可以登陆重置MySQL的root密码
知道 密码 :
1 2
| ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
|
或
1
| SET PASSWORD for 'root'@'%' = password('新密码');
|
或 有些情况下需要顺带修改plugin认证方式,可用以下写法
1
| ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
|
或
1
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码';
|
四、使用bin目录下mysqladmin
写法1:
1
| mysqladmin -u root -p password 新密码;
|
回车后输入旧密码,再回车即可
写法2:
1
| mysqladmin -uroot -p原密码 password 新密码;
|
此命令就一步到位,但密码会暴露在命令上(注意-u及-p后面不能用空格)
有些版本MySQL安装完后root是没有临时密码的,就可以用此命令直接修改root密码
1
| mysqladmin -u root password 新密码;
|