Mysql 8.x安装、修改root密码、加密方式,以及修改普通用户的加密方式、远程登录等问题

一、Mysql安装:
1.查看是否装有mysql  (有输出表示已安装,无输出表示未安装;该命令可检测是否安装成功)

2.更新软件源中的所有软件列表: apt update

  1. apt-get 是较早的软件包管理工具,而 apt 是较新的封装工具,它被设计为更简洁易用的命令,apt 可以自动处理依赖关系,而 apt-get 需要手动安装依赖项。
  2. apt-get 命令与 dpkg 结合使用,用于安装、升级和删除软件包,而 apt 命令则是一个全新的命令,它可以直接安装、升级和删除软件包,也可以通过 apt-cache 命令查看软件包信息。
  3. apt-get 命令的更新软件包索引的命令是 "apt-get update",而 apt 命令的更新索引的命令是 "apt update"。
  4. apt-get 和 apt 命令的功能非常相似,但 apt 命令更加高级、简洁易用,如果你是新手,建议使用 apt 命令。

3.安装:  apt install mysql-server-8.0

​apt install mysql-server    //执行前,按两下tab键,获取可下载的版本​

    //提示可知,仅有 mysql-server-8.0可选

apt install mysql-server-8.0    //下载

4.安装完成后,重启mysql:

service mysql restart    //重启mysql

 或者(新的服务命令)

systemctl restart mysqld.service

二、修改root密码:
设置新密码的命令,123456为设置的密码:

alter user 'root'@'localhost' identified by '123456';

三、登录及修改root用户密码方式:
1、登录mysql。

mysql -u root -p

或者附带密码方式直接登录

mysql -uroot -p123456

2、通过执行以下命令查看对应用户的加密方式,也可以将user='root’改成比如user=‘test’,来查看用户test的加密方式。

use mysql;
select user,plugin from user where user='root';


3、执行命令修改加密方式

alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';

或者

ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

4、使配置生效

 flush privileges;

补充:

我们可以在终端输入以下命令,来查看MySQL中的默认用户和密码

sudo cat /etc/mysql/debian.cnf


下图所框选的就是MySQL中默认的用户名和密码(每个人的密码都不一样)

 然后,我们根据这个默认的用户和密码就能登入到MySQL中

mysql -udebian-sys-maint -pXXXXXXXXXX(密码)


四、修改普通用户的加密方式:
比如:当使用mysql的可视化工具Navicat等,在进行初次连接数据库时,因为加密方式的原因报错,没办法连接成功;又或者连接 Django和Mysql配合使用,由于Django不支持新版本Mysql的加密方式,会出现如下两条报错,此时由于你Django项目的数据库用的用户非root,而是其他用户,所以需要修改其他用户的密码加密方式。
_mysql_exceptions.OperationalError: (2059, )
django.db.utils.OperationalError: (2059, )

修改方法:
1、输入登陆指令和密码并登陆:

mysql -u root -p

2、输入:

use mysql;

3、继续输入:

select user,host from user;

此时可以显示出各用户对应的host名,也就是修改指令中@后面的内容。
4、根据查询结果,紧接着输入修改加密方式指令:
例如:根据上面查询结果,test用户的host为%。所有指令如下:

alter user 'test'@'%' identified with mysql_native_password by 'test123';

注意:
(1)”%”欲连接到此Mysql数据库的客户端的IP地址,根据需求进行修正即可。%表示全部ip均可连接
(2)password就是Mysql数据库的test用户的password,根据实际情况需要修改

grant all privileges on *.* to test@'%' identified by 'test';

all privileges  表示:所有权限,也可以特指某些权限如,select,delect,insert等

*.*   表示:数据库服务器中 所有数据库,也可以特指某数据库的某个表,如:dbName.tableName

'%'  表示:允许除本机外的任何一台机器远程登录,也可以指定ip,如'localhost'本机,或

5、使配置生效

 flush privileges;

五、Mysql编码配置/可远程连接设置:

1、修改MySQL的配置文件,vim /etc/mysql/my.cnf

方式一:

将bind-address = 127.0.0.1,注释掉

#bind-address = 127.0.0.1

或者修改为:0.0.0.0

bind-address = 0.0.0.0

或者

方式二:vim /etc/mysql/mysql.conf.d/mysqld.cnf

2、修改root的host为% 即无论在哪台主机上都能够登陆

可以看到root的host为localhost即只有本地能够登陆

update user set host='%' where user='root' and host='localhost';

修改后的root的host为%,允许任何机器能够登陆

3、添加远程访问用户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

4、将MySQL服务进行重启

service mysql restart  

或者(新的服务命令)

systemctl restart mysqld.service

以前都用service命令管理mysql,现在liunx系统升级了,有了新的更好的方法管理系统进程,现在用systemctl命令管理mysql。

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。 Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。 在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值