首先是进行安装
这里我准备了两个版本的ubuntu,分别是20.04和18.04.
使用命令进行傻瓜式安装MySQL:
sudo apt install mysql-server mysql-client
.
使用apt安装很方便,但默认版本会有所不同.
在ubuntu20.04
中目前默认安装的是MySQL 8.0.26
.
在ubuntu18.04
中目前默认安装的是MySQL 5.7
.
然后是设置密码
在安装完成后,默认是没有设置密码的,取而代之的是一个叫做
auth_socket
的验证方式.
该插件不关心,也不需要密码.它只检查用户是否使用UNIX套接字进行连接,然后比较用户名.
简单来说就是只有在本机
并且使用root账户
或者拥有root权限
时才能登录,而且不需要输入密码
.
如下两种登录root的方式:
第一种:
sudo mysql
第二种:
先su root
,
然后直接mysql
.
都可以登录root用户.
进入mysql数据库下,查看用户信息.
select plugin,user,host,authentication_string from user;
(密码验证方式,用户名,主机,密码),
这时直接用之前提过的密码修改方式是无效的.
alter user 'root'@'localhost' identified by '123456';
这个命令不起效,就是因为 auth_socket
因此需要连同密码验证方式一同更改
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
这样就可以了. 这里的mysql_native_password
是 MySQL 5.7默认的验证方式.
MySQL 8有了新的caching_sha2_password
验证方式.
但继续使用 MySQL5.7的mysql_native_password
就行.
也可以使用这个更改方式:
使用debian用户进行登录,然后更改root的密码验证方式及密码.
查看debian用户的用户名
与密码
.
sudo vim /etc/mysql/debian.conf
使用上述用户名密码登录到mysql
先切换数据库:user mysql
再修改root密码:alter user 'root'@'localhost' identified with mysql_native_password by '123456';
两种方式都行.
如有错误还望指出