首页 > 数据库 >Ubuntu20.04彻底删除mysql,并重装mysql(mysql8)

Ubuntu20.04彻底删除mysql,并重装mysql(mysql8)

时间:2025-01-10 14:01:09浏览次数:1  
标签:Ubuntu20.04 mysql8 sudo apt 密码 user mysql root

前言
本文涉及的命令需要有一定的ubuntu基础。请搞清楚命令的具体使用环境和场景,以确保得到正确结果。介于有网友使用autoremove命令时出现的其他问题。我补充了注意事项。在另外一片博文中。请大家一定要注意!

彻底卸载
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
apt-get purge 与 apt-get remove是不同的,简单来说:

purge可以将包以及软件的配置文件全部删除
remove仅可以删除包,但不会删除配置文件
注意!注意!注意!

这里一定要 清楚 autoremove 的正确用法。具体请参考我另外一片文章(auto remove)

安装
可根据需要选择下面mysql常用包进行安装

sudo apt-get install mysql-server -y #mysql 服务端

sudo apt install mysql-client -y #mysql 客户端

sudo apt install libmysqlclient-dev -y #mysql 开发包

安装过程中如果没有报错信息,安装完成后,会自动启动mysql服务

检查mysql服务是否成功启动
方法有多种。常用如下:

sudo netstat -tap | grep mysql
如下图则启动成功

sudo service mysql status
ubantu下可以直接用service命令查看服务运行状态,类似如下

mysql服务启动
如果未启动,则运行启动命令

sudo service mysql start

遇到了警告 su:warning blah blah blah...
解决方法参考如下:

(MySQL 8, WSL 2) su: warning: cannot change directory to /nonexistent: No such file or directory · Issue #256 · miguelgrinberg/microblog · GitHub

sudo service mysql stop #先停止服务
sudo usermod -d /var/lib/mysql/ mysql #为 mysql 用户创建一个主目录
sudo service mysql start #然后再启动
成功启动

连接mysql
本地连接
前提是在本地安装mysql 客户端( sudo apt install mysql-client -y #mysql 客户端)

mysql -u用户 -p密码

通常情况
输入mysql -uroot -p 来登录root账号,不需要输入root密码。直接回车即可。

特殊情况
需要输入root密码的情况。但是,我们第一登录,并没有设置root用户的密码。

1、我们需要先找到默认的用户密码

sudo cat /etc/mysql/debian.cnf

2、用上面查到的默认的 user和 password 来登录

mysql -udebian-sys-maint -pRkqm8f6NHv1CYsrB

3、设置root密码

mysql>use mysql;
mysql>flush privileges;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
mysql>flush privileges;
如下设置root@localhost密码为root

远程连接
需要用户有远程访问权限

查看已有用户
use mysql; #切换到mysql

select user,host from user; #查看user列表
如下图例子:

通过命令可以看到当前只有一个用户root,并且Host为localhost,即只能本地访问权限

创建用户
查看用户列表

select user, host,authentication_string, plugin from user;
创建:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

在实际应用中,我们应避免明文指定密码,可以通过 PASSWORD 关键字使用密码的哈希值设置密码。

如下:

test1用户密码为test1

可先通过sql语句查看test1串的哈希值的,然后再设置密码为这个哈希值

SELECT password('test1');
CREATE USER 'test1'@'主机名' IDENTIFIED BY 'test1的哈希值';
开启远程访问权限
方法一:直接改表

update user set host='%' where user='用户名';

顾名思义,该方法就是直接修改更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为"%"

方法二:授权账户

通过GRANT命令可以授予主机远程访问权限(GRANT的详细用法,不在这里讲)

GRANT ALL PRIVILEGES ON . TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

--赋予任何主机访问权限:%

GRANT ALL PRIVILEGES ON . TO '用户名'@'172.16.16.10' IDENTIFIED BY '密码' WITH GRANT OPTION;

--允许指定主机(IP地址)访问权限:具体ip 172.16.16.10

FLUSH PRIVILEGES;

--刷新权限表使上述更改生效

可能遇到的问题
在同一个网段,以上操作都没问题,但还是不能连接的情况,需要更改配置文件

1、打开 mysqld.cnf

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

2、找到bind-adderss = 127.0.0.1这行并注释掉。

bind-adderss = 127.0.0.1 改为如下:

bind-adderss = 127.0.0.1

3、后重启mysql服务

sudo service mysql restart

注意
出于安全考虑,尤其是正式环境下

不推荐直接给root开启远程访问
建议做权限细分和限制
正式环境中,推荐通过创建mysql用户并给对应的用户赋权的形式来开放远程服务权限,并制定ip地址,赋权时根据用户需求,在GRANT命令中只开放select、update等权限,做到权限粒度最小化。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/fanrongwoaini/article/details/107518693

标签:Ubuntu20.04,mysql8,sudo,apt,密码,user,mysql,root
From: https://www.cnblogs.com/huft/p/18663852

相关文章

  • mysql 行转列和列转行
    一、行转列1、使用case…when…then2、使用SUM(IF())生成列3、使用SUM(IF())生成列+WITHROLLUP生成汇总行4、使用SUM(IF())生成列,直接生成汇总结果,不再利用子查询5、使用SUM(IF())生成列+UNION生成汇总行,并利用IFNULL将汇总行标题显示为Total6、动态查询列值......
  • 如何在 Ubuntu 20.04 上安装 MySQL 5.7
    如何在Ubuntu20.04上安装MySQL5.7在今天的指南中,我们将了解如何在Ubuntu20.04(FocalFossa)服务器上安装MySQL5.7。MySQL是最常用的数据库管理系统之一。它使用关系数据库的概念并具有客户端/服务器体系结构。它可以安装在各种操作系统上,包括Windows、CentOS和De......
  • python修改mysql数据库密码
    importsubprocess#获得当前执行路径#current_dir_path=os.getcwd()##path=f"{current_dir_path}/project/redis/redis-server.exe"#path=f"{current_dir_path}"#print(path)#修改当前Python进程的环境变量,但它不会永久性地修改系统的环境变量。impo......
  • MySQL 性能优化
    MySQL性能优化为了更具体地展示如何在实际情景中应用MySQL性能优化技巧,我们将通过一个假设的电子商务平台案例来演示分析查询计划、优化查询性能以及使用缓存机制的具体步骤。这个案例将帮助您理解在真实环境中应该如何操作。情景设定假设我们正在为一家名为“EcomStore......
  • mysql-sql统计数据sql整理
    一、查询SQLSELECTt1.规则编号AS编码,t1.规则描述AS名称,SUM(CASEWHENt3.DATA_SOURCES='00'THEN1ELSE0END)AS'类型01',SUM(CASEWHENt3.DATA_SOURCES='01'THEN1ELSE0END)AS'类型02',SUM(CASEW......
  • 服务器上mysqld,java的进程Out of Memory,被kernel kill 掉了
    /var/log/messages里面日志如下Aug1019:47:16VM-0-7-centoskernel:8936totalpagecachepagesAug1019:47:16VM-0-7-centoskernel:0pagesinswapcacheAug1019:47:16VM-0-7-centoskernel:Swapcachestats:add0,delete0,find0/0Aug1019:47:16VM-0......
  • 使用mysqlbinlog 备份 binlog日志文件
    使用mysqlbinlog备份二进制日志文件默认情况下,mysqlbinlog读取二进制日志文件并以文本格式显示其内容。这使您能够更轻松地检查文件中的事件并重新执行它们(例如,通过将输出用作mysql的输入)。mysqlbinlog可以直接从本地文件系统读取日志文件,或者,--read-from-remote-server它可......
  • MySQL三种读取模式详解:普通、流式、游标
    在与MySQL数据库交互时,数据的读取方式有多种选择,包括普通读取、流式读取和游标读取。每种方式都有其独特的原理、优势和劣势。本文将对这三种读取方式进行详细介绍,并通过示例代码展示它们的使用方法和运行结果。1.普通读取介绍普通读取是指通过JDBC的Statement或Prepare......
  • 如何通过宝塔面板定时任务重启MySQL服务以保持稳定性和优化性能
    MySQL服务在长时间运行后,可能会因为各种原因导致连接不稳定或内存占用过大,影响网站和应用程序的性能。为了确保MySQL服务的稳定性和优化性能,可以通过宝塔面板设置定时任务来定期重启MySQL服务。以下是具体的操作步骤和建议:理解定时重启的好处:定期重启MySQL服务可以帮助清理缓存......
  • MySQL中的事务和事务隔离级别
    MySQL/MariaDB中的事务和事务隔离级别 分类: 数据库系列undefined官方手册:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-transaction-model.html1.事务特性事务具有ACID特性:原子性(A,atomicity)、一致性(C,consistency)、隔离性(I,isolation)、持久性(D,......