Ubuntu安装Mysql时没有提示设置密码问题
注:mysql版本不一样可能效果不一致,mysql 8.0.21请参照后面的方法。
经过了好几个小时的查找资料,终于设置好了。
1. 打开/etc/mysql/debian.cnf文件,在这个文件中有系统默认给我们分配的用户名和密码,通过这个密码就可以直接对MySQL进行操作了。
$sudo vim /etc/mysql/debian.cnf
可以看到里面有:
user = debian-sys-maint
password = qEjxHklFPe8RxZik
其中每个人的user应该都是一样的,password不同而以。
2. 以debian-sys-maint为用户名登录mysql
$ mysql -u debian-sys-maint -p
然后输入密码,密码就上面的说的,我的是:qEjxHklFPe8RxZik
这里要特别注意密码的大小写!!!
3. 在mysql shell里执行语句:
mysql> update mysql.user set authentication_string=password('new password') where user='root' and Host ='localhost';
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;
其中new password为你设置的新密码。
注意每条语句后面要有分号结尾!!!
4. 重启mysql服务sudo service mysql restart,之后就可以以root用户登陆了,密码就是你刚才设置的"new password"。
mysql 8.0.21的看这里
同样,参照上面步骤1的方法
$sudo vim /etc/mysql/debian.cnf
先查看默认账号和密码,然后使用该账号密码登陆
$ mysql -u debian-sys-maint -p
$ Enter password: 输入密码
成功登陆后执行如下语句:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
mysql> exit;
然后就可以使用root账号登陆了。
如果出现如下报错,
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
可以如下方式进行登陆,加了一个sudo
sudo mysql -uroot -p
解决使用sudo才可以登陆的方法
首先使用默认账号登陆
$ mysql -u debian-sys-maint -p
$ Enter password: 输入密码
登陆成功后:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的密码';
mysql> exit;
完成。