linux 下安装Mysql5.7以后版本后不知道密码如何登陆
第一次在linux下安装mysql,安装成功以后不知道密码无法登陆,看了好多博客说初始密码为空,然而并不是这样,输入空密码会报错,后来才知道和版本有关。5.7之前的版本默认是没有密码的,只需在服务器上直接登录,甚至用户名都不用指定,但除本机外网络是登不上的,5.7版本的话安装完后会生成一个随机密码,不知道设计这个有何意义,密码随机谁能知道?下面说下安装mysql和修改密码以及成功登陆mysql的过程。
- 安装 mysql
sudo apt-get install mysql-server mysql-client - 启动mysql
service mysql start - 登陆mysql
mysql -u root -p
这时会让你输入密码,可是初始密码我们是不知道的,这时我们需要找到mysql的配置文件进行修改(配置文件具体路径根据你安装路径来确定)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
[mysqld]
skip-grant-tables
- 重启mysql
service mysql restart
这时我们可以不需要输入密码直接登陆mysql - 登陆mysql修改root密码(newpassword为你的新密码)
mysql -u root -p
#最新版MySQL请采用如下SQL:
mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
- 刷新权限
mysql> FLUSH PRIVILEGES;
- 退出mysql
mysql> exit
- 修改mysql配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
将之前加入的“skip-grant-tables”注释掉
[mysqld]
#skip-grant-tables
- 重启mysql
service mysql restart
这时我们就可以用刚刚设置好的新密码登陆mysql了