Ubuntu22.04下载MySQL(解决密码修改不成功问题)

目录

一、安装mysql

1.1打开终端

1.2更新软件源

1.3安装mysql-server

1.4安装libmysqlclient-dev(应用程序开发需要安装)

 二、配置mysql

2.1初始化配置

2.2登录

2.2.1已经设置过密码

2.2.2未设置密码

2.3改密码

2.4错误处理

2.4.1ERROR 1819 (HY000)

2.4.2ERROR 1698 (28000)

三、补充

3.1查看当前 MySQL 服务器上的用户账户

3.2登录debian-sys-maint用户

3.3检查 MySQL 服务状态

3.4启动MySQL 服务


一、安装mysql

1.1打开终端

快捷键Ctrl+Alt+T

1.2更新软件源
sudo apt update

1.3安装mysql-server
sudo apt install mysql-server

1.4安装libmysqlclient-dev(应用程序开发需要安装)
sudo apt install libmysqlclient-dev

 二、配置mysql

 2.1初始化配置
sudo mysql_secure_installation

这里根据提示设置y或者n,以下是我的设置

VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No:n

Remove anonymous users? (Press y|Y for Yes, any other key for No) :y

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :n

Remove test database and access to it? (Press y|Y for Yes, any other key for No) :y

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :y

2.2登录
2.2.1已经设置过密码

如果sudo mysql_secure_installation有set the password for root这一步,就使用设置好的密码,输入以下命令登录root:

mysql -u root -p

登录其它用户,将root替换为别的用户名,u是user,p是password 

2.2.2未设置密码

如果刚才输入sudo mysql_secure_installation提示的是

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

说明当前的root密码为空,使用下面的命令登录(此处输入的是ubuntu的登录密码)

sudo mysql -uroot

2.3改密码

输入以下指令,newpassword替换为你想要设置的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
FLUSH PRIVILEGES;

用ALTER语句并指定mysql_native_password插件来设置密码时,MySQL 会自动将该用户的认证插件(plugin字段)更改为mysql_native_password。

设置过一次后,后面可以不加WITH mysql_native_password

FLUSH PRIVILEGES;确保更改立即生效

2.4错误处理
2.4.1ERROR 1819 (HY000)

Your password does not satisfy the current policy requirements

说明你当前设置的密码不满足你的密码策略,可以输入下面命令查看一下:

SHOW VARIABLES LIKE 'validate_password%';

这些字段很好理解,大家根据自己的需求更改即可

 由于我想设置的密码长度是6个,所以修改了length,其它的字段修改格式也类似

SET GLOBAL validate_password.length = 6;

 参考:mysql - 您的密码不满足当前策略要求 - Stack Overflow

2.4.2ERROR 1698 (28000)

Access denied for user 'root'@'localhost'

有可能是密码错误、MySQL 服务未运行等,确认密码是否无误,MySQL 是否已启动(参考3.3和3.4),忘记密码重新设置密码(参考2.3)

三、补充

3.1查看当前 MySQL 服务器上的用户账户
select user from mysql.user;

  • debian-sys-maint:Ubuntu 或 Debian 系统在安装 MySQL 时创建的特殊用户账户,通常用于系统维护任务,如自动更新或其他系统级别的操作。这个账户通常具有较高的权限,但仅限于系统维护相关的操作。

  • mysql.infoschema:MySQL 信息架构数据库的专用用户账户,用于访问INFORMATION_SCHEMA数据库,INFORMATION_SCHEMA提供了关于数据库服务器的元数据,如数据库、表、列和权限等的详细信息。

  • mysql.session:与 MySQL 的会话管理功能相关

  • mysql.sys: MySQL 系统数据库的专用用户账户,用于访问MySQL系统数据库

  • root:MySQL 的超级用户账户,拥有最高权限级别,可以执行任何数据库操作,包括创建和删除数据库、修改数据和更改系统设置

3.2登录debian-sys-maint用户

查看debian-sys-maint用户的密码

sudo cat /etc/mysql/debian.cnf

mysql -u user -ppassword
3.3检查 MySQL 服务状态
sudo systemctl status mysql
3.4启动MySQL 服务
sudo systemctl start mysql

重启就是start替换为restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值