且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

亲测ubuntu 18系统下解决MySQL 5.7版本的root用户密码没提示输入问题不能登录问题

更新时间:2021-07-26 04:41:54

最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同样需要的人参考。

1、安装

1

2

3

4

5

$ sudo apt-get install mysql-server


$ sudo apt install mysql-client


$ sudo apt install libmysqlclient-dev

 以此在终端输入上述代码,等待安装。装好后,输入以下代码检查下是否安装成功。

1

2

3

4

5

$ sudo netstat -tap | grep mysql


$ sudo netstat -tap | grep mysql


tcp6        0       0       [::]:mysql    [::]:*    LISTEN    7510/mysqld

 如果出现第三行提示,则表明安装成功。

2、登入MySQL

1$ mysql -u root -p

 输入密码,如果可以进入则下面的不用看了;如果提示不能登入,则我们尝试启用安全模式登入MySQL,这样可以绕过密码登入,登入后再修改密码。

3、安全模式登入MySQL

1

2

3

4

5

6

7

$ sudo /etc/init.d/mysql stop


-------------------------------------

[sudo] wl 的密码:

[ ok ] Stopping mysql (via systemctl): mysql.service.


$ sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &

 输入第一行终止MySQL运行,成功,会提示下面两行;输入第四行,成功,没有任何报错则可以另外打开一个终端窗口进行下一步操作;但是一般会报错,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists

因此我们尝试输入以下代码

1

2

3

$ sudo mkdir -p /var/run/mysqld


$ sudo chown mysql:mysql /var/run/mysqld

 最后再次输入:

1sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &

 到了这里不在提示错误,可以打开另一个终端端口了,尝试无密码登入MySQL。

1mysql -u root

 到这里应该可以进入MySQL了,继续操作

1

2

3

4

5

6

7

> use mysql;


> update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码

> update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行


> flush privileges; #更新所有操作权限

> quit;

 4、使用修改的密码登入MySQL

经过上面一系列的操作,应该可以正常使用你更改的密码登入了。

1

2

3

4

> sudo /etc/init.d/mysql stop

> sudo /etc/init.d/mysql start # reset mysql


> mysql -u root -p

 第一行先终止数据库运行,第二行重启数据库服务,第三行root用户登入。