开启MySQL服务后,使用MySQL命令可以登录。一般使用mysql -uroot -p即可。如果数据库不是本机,则需要加参数,常用参数如下:
创新互联专注于昌都网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供昌都营销型网站建设,昌都网站制作、昌都网页设计、昌都网站官网定制、微信小程序服务,打造昌都网络公司原创品牌,更为您提供昌都网站排名全网营销落地服务。
1,-h,指定ip地址,默认为localhost
2,-u,指定用户名。
3,-p,指定密码,密码可以接在-p后面输入mysql -uroot -p123456。也也可以mysql -uroot -p回车等提示输入密码时输入,这样输入密码没有回显。
现象
一线的工程师反映了一个奇怪的现象,刚刚从 MySQL 官网上下载了一个 MySQL 5.7.31。安装完成后,发现使用任何密码都能登陆 MySQL,修改密码也不管用,重新启动 MySQL 也不能解决。
分析
怀疑使用了 --skip-grant-tables 使用 mysqld --print-defaults 检查,没有发现。
检查登陆用户,都是 root@localhost,说明和 proxy user 没有关系。
使用 mysql --print-defaults 检查客户端是否设置默认的用户和密码,没有发现。
检查数据库中的用户和密码的相关字段:
发现一切都正常,再检查 plugin 字段,发现只有 root 用户是 auth_socket ,其它的用户都是 mysql_native_password,问题可能就出在这儿。
对 auth_socket 验证插件不了解,感觉是这个插件不安全,使用下面的命令修改后,问题解决:
update user set plugin="mysql_native_password" where user='root';
auth_socket 验证插件的使用场景
问题解决后,又仔细研究了一下 auth_socket 这个插件,发现这种验证方式有以下特点:
首先,这种验证方式不要求输入密码,即使输入了密码也不验证。这个特点让很多人觉得很不安全,实际仔细研究一下这种方式,发现还是相当安全的,因为它有另外两个限制;
只能用 UNIX 的 socket 方式登陆,这就保证了只能本地登陆,用户在使用这种登陆方式时已经通过了操作系统的安全验证;
操作系统的用户和 MySQL 数据库的用户名必须一致,例如你要登陆 MySQL 的 root 用户,必须用操作系统的 root 用户登陆。
auth_socket 这个插件因为有这些特点,它很适合我们在系统投产前进行安装调试的时候使用,而且也有相当的安全性,因为系统投产前通常经常同时使用操作系统的 root 用户和 MySQL 的 root 用户。当我们在系统投产后,操作系统的 root 用户和 MySQL 的 root 用户就不能随便使用了,这时可以换成其它的验证方式,可以使用下面的命令进行切换:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
首先要把Mysql的服务要关闭掉
打开DOS窗口,转到Mysql下bin文件夹下且输入如图所示命令。
再新开一个窗口后进行如上图所示的路径
输入:mysql -- 回车
输入:use mysql -- 回车
输入:update user set password=password("123456") where user="root";
输入:flush privileges;(刷新权限)
输入:\q
重新计算机后再进行。
MySQL有时候忘记了root密码是一件伤感的事。这里提供Windows 和 Linux 下的密码重置方法。
Windows:
1.以系统管理员身份登陆系统。
2.打开cmd-----net start 查看mysql是否启动。启动的话就停止net stop mysql.
3.我的mysql安装在d:\usr\local\mysql4\bin下。
4.跳过权限检查启动mysql.
d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables
5.重新打开cmd。进到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql\bin\mysqladmin -u root flush-privileges password "newpassword"
d:\usr\local\mysql\bin\mysqladmin -u root -p shutdown 这句提示你重新输密码。
6.在cmd里net start mysql
7.搞定了。
Linux:
MySQL root密码的恢复方法之一
如果忘记了MySQL root密码,可以用以下方法重新设置:
1.KILL掉系统里的MySQL进程;
killall -TERM MySQLd
2.用以下命令启动MySQL,以不检查权限的方式启动;
safe_MySQLd --skip-grant-tables
3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root
4.修改root用户的密码;
MySQL update MySQL.user set password=PASSWORD('新密码') where User='root';
MySQL flush privileges;
MySQL quit
重新启动MySQL,就可以使用新密码登录了。
MySQLroot密码的恢复方法二
有可能你的系统没有 safe_MySQLd 程序(比如我现在用的 ubuntu操作系统, apt-get安装的MySQL) , 下面方法可以恢复
1.停止MySQLd;
sudo /etc/init.d/MySQL stop
(您可能有其它的方法,总之停止MySQLd的运行就可以了)
2.用以下命令启动MySQL,以不检查权限的方式启动;
MySQLd --skip-grant-tables
3.然后用空密码方式使用root用户登录 MySQL;
MySQL -u root
4.修改root用户的密码;
MySQL update MySQL.user set password=PASSWORD('newpassword') where User='root';
MySQL flush privileges;
MySQL quit
重新启动MySQL
/etc/init.d/MySQL restart
就可以使用新密码 newpassword 登录了。
以上就是MySQL重置root密码方法的介绍,希望能给大家一个参考,了解更多MySQL语法,大家可以关注《MySQL 5.1参考手册》,也希望大家多多支持脚本之家。