我自己安装时找了好多个教程,拼拼凑凑才装好的,所以打算整理一下,分享出来,也给自己下次安装省点事
写在前面:
这是我安装的mysql版本和Ubuntu系统版本
1.更新列表
sudo apt-get update
2.安装mysql服务器
sudo apt install mysql-server
出现下面这个截图就安装好了
3.保护/自启动MySQL
数据库包安装完成后,mysql-secure-installation 实用程序将自动启动。但是,如果没有自动启动,可执行以下命令:(我没有自启动,就按照没有自启动的写教程了)
sudo mysql_secure_installation
通过上述命令,我们可以对数据库进行一些基本的配置,但我也不知道为啥我明明选的密码验证为low,最后显示是medium,而且其他教程说会出现输入密码的提示,我这里也没有。如下图所示
出现All done即完成。
4.确认一下数据库是否自启动
sudo systemctl mysql-server
有类似输出表示自启动成功
另一个启动mysql的命令
sudo service mysql start
5.以root用户的身份登录数据库
此时默认root密码为空,访问服务器的用户将使用身份验证套接字 (auth_socket) 插件进行身份验证。auth_socket 的使用会阻碍服务器使用密码对用户进行身份验证。所以我们需要进行一下修改
sudo mysql
6.对root的加密方式进行修改
(1)查看root的plugin
use mysql #一定要有这句
select user,plugin from user;
我们需要把auth_socket改为caching_sha2_password
(2)修改root的加密方式
update user set plugin= 'caching_sha2_password' where user= 'root';
修改完记得使用查看语句再查看一次root的加密方式。
需要注意:
密码加密方式 :
mysql_native_password 是 mysql5.7版本的加密方式
caching_sha2_password 是 mysql8.0版本的加密方式
有些教程会让把root的加密方式改为mysql_native_password,建议就是先查看一下,看看其他的user是什么方式,把root改成一样的就好。
(3)刷新一下,是配置生效
flush privileges;
要记得这个语句(很多mysql的设置语句)必须出现在mysql>的第一行,不可出现再第二行及之后,如下图所示位置。
7.修改root用户登录密码
如果有问题的同学可以参考这两篇文章进行解决
MySQL修改密码时,报错ERROR 1064 (42000)【新版MySQL修改密码命令有所变更】_error 1064 (42000):-CSDN博客
正确的写法:(我的截图有一部分写成了mysql_native_password,大家记得改过来,和自己的保持一致)
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
如果和我一样出现上述问题,就是我们密码验证策略出现了问题,可以参考这篇文章解决解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements - 慕尘 - 博客园 (cnblogs.com)
(1)查看当前状态下的密码验证策略
SHOW VARIABLES LIKE 'validate_password%';
(这个是在mysql环境中运行的)
(2)修改密码验证策略
set global validate_password.policy=0
注意:validate_password.policy要与自己的策略名相同
修改后记得刷新并查看是否修改过来
(3)再次执行修改密码命令
会发现修改成功!而后记得刷新!
8.以root用户身份使用密码登录
mysql -u root -p
即可登陆成功!
9.设置root用户可以远程登录(如果不需要远程登陆的到第七步就可以结束了)
可以参考这篇文章mysql 设置远程登录-CSDN博客
(1)查看root用户的host设置
select host,user for user;
(2)设置root不仅可以被本地连接还可以被远程连接
update user set host = '%' where user = 'root';
(3)重新查看root用户的host设置
(4)编辑MySQL配置文件:
一定要记得配置文件中有这句话,这将使MySQL监听所有网络接口,而不仅仅是本地。
我的文件是 /etc/mysql/mysql.conf.d/mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
(5)重启MySQL
(6)为root远程连接设置密码(因为之前只设置了本地的密码)
ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456';
然后记得刷新!
这是为用户授权
Grant all privileges on *.* to 'root'@'%' with grant option; //这里的'XXX'为用户名
然后我们的数据库就可以实现远程连接了。